Mentoring Undergrad Research Across Continents: An Experiment

19
Jun
2010

From July 2010 to June 2011, I will be mentoring 8 undergrad students from my alma mater, Fr. Conçeicao Rodrigues College of Engineering for their Senior Projects (a.k.a. Final-Year projects). We plan to work together on two projects in the area of Personal Information Management. This is an experiment of sorts, because as far as I know, final-year projects in Bombay University have never been mentored remotely, and only a small proportion are research-oriented.

Why it’s the right time for this.

There are several reasons why I’m doing this: several years ago, a few of my friends from undergrad — Salil Wadhavkar, Ninad Pradhan, Vikram Iyengar, Noel Tide, Rahul Saxena, Raghu Cowlagi — had discussed mentoring our juniors to participate in tech contests. At the time, we all had just finished our Masters degrees, and felt that we could nudge a few students to take up research and grad school by such encouragement. That conversation died down for several reasons about 4-5 years ago, but the spark remained.

I enjoy building things. That’s why I had decided I wanted to be in industry (instead of academia) even before I started my Ph.D. program. But it’s also fun to conduct studies and find answers to interesting questions, and it’s incredibly hard to do the latter while my job at Google enables me to build Awesome Stuff™ full-time. Collaborating with students seems like a win-win situation for all of us: the undergrad students gain exposure to research, and we all are able to build, study, and publish what we find.

Proposing the collaboration

With these ideas in mind, I visited my undergrad college (under Bombay University) when I was in Bombay this February. I met the Principal, Dr. Srija Unnikrishnan, and the Head of the Department of Information Technology, Prof. Mahesh Sharma. Both found the idea promising, and Prof Sharma asked me to address the 3rd year classes (junior-level in the US system) that were in progress at the time. Although I felt a little bad interrupting classes to deliver my 15-min spiel, the students, professors, head of the department and the principal were not only supportive but also enthusiastic about this. My concerns about the distance & my lack of physical availability in Bombay were brushed aside by Prof. Sharma (“when there’s chat and Skype, why do you have to be here personally?”)

Soon, two groups of four students contacted me, and we worked on defining the projects between February and now (June 2010). I was impressed by their initial emails, which clearly showed they were not only interested, but had also done their homework before proposing a project. Akash Singh, Abhishek Mishra, Shivam Mishra, Nitish Nadkarni, and I will be collaborating on an email-related project, and Rushabh Ajmera, Aneesh Datar, Bhavya Gandhi, Vimarsh Karbhari, and I will be collaborating on a task-management related project; both within Personal Information Management. (We will publish the details of these projects and the entire source code developed as part of this project as and when we have something to report.)

Other voices

Luis von Ahn from CMU recently published a blog post about outsourcing his research group. While he proposes doing this mainly for monetary reasons, I figured this could be more of an academically-enriching mutually-beneficial experience. There are a few neat opinions expressed in his blog post, as well as in the comments.

Next steps

I expect to learn many valuable lessons about cross-continental collaboration from this process as much as I expect to learn from my new colleagues — who are no doubt better versed in technologies of the day than I am. I will continue to blog about our experiences as we proceed.

If you have any tips for us as we embark on this year-long experiment, please leave us a comment.

The 5 Stages of Driving in India

Permanent Link | Filed under: Thoughts
17
Feb
2010

(with apologies to Elisabeth Kübler-Ross)

  1. Denial: No way that guy’s gonna cut across in front of me.
  2. Anger: Whaa? WTF? Get out of my frikkin’ way!
  3. Bargaining: Maybe if I let him cut across, I could still retain a modicum of sanity.
  4. Depression: Screw this, it’s never gonna get any better.
  5. Acceptance: Oh well, when in Rome …

Simplified Twitter Microsyntax for the Haiti Earthquake

18
Jan
2010

In this post, I have typeset many more sentences in bold than I usually do, so readers can quickly skim through it.

I applaud the efforts of U. Colorado’s EPIC Group in assisting the victims of the Haiti earthquake in calling for help using Twitter, and to make their tweets discoverable and actionable. I just performed a Twitter search for the terms #haiti -RT -http (includes all Tweets tagged #Haiti, except retweets or links) to inspect some of the tweets that are directly related to happenings on the ground, and they are (as expected) only a minuscule percentage of the total number of tweets about #Haiti. Syntax is thus sorely needed to achieve a decent signal-to-noise ratio to assist relief efforts.

Though, in my opinion, the current version of the tweet syntax seems too formal, too rigid and a tad too complicated for victims or rescuers on the ground. I am a programmer, and even I had trouble mentally parsing a few of the examples provided. We must keep in mind that Haiti is a bi-/tri-lingual country (and neither of them is English), so any syntactic terms used should preferably be semi-obvious to non-native speakers of the language as well as rescuers.

Roles of Microsyntax

  1. Make tweets discoverable: Microsyntax can assist local search-and-rescue efforts and unaffected Twitter users in determining if a tweet is actionable. This task is partly a Signal Detection Task and partly a Data Mining problem. In both situations, microsyntax can prove helpful: all that’s needed is a single tag that emphasizes that a particular tweet is actionable (versus not), e.g. #haiti #rescue (or #haitirescue, to avoid having to type a second # (hash) sign). This will greatly increase the sensitivity parameter d’ of the signal detection task.
  2. Make data mining easier: Once a tweet has been detected to be actionable, its contents must be parsed into a form that local efforts can take action upon. While it’s true that all the other proposed microsyntactic tags make it easier for applications to parse the data, this is at the cost of requiring users to learn new syntax. This seems to me a little too much to expect from victims of a recent calamity of this scale as well as from rescue workers with other higher priorities. Instead, as long as our tools can identify relevant tweets, computers should be able to perform the second task of parsing locations, names, and verbs from tags quite easily.

Also, microsyntactic terms need not always be prefixed with # (hash) signs; they are often difficult to type using cell phone keyboards, and on some handsets, may hamper input methods such as T9. Because of the intervening # signs, Tweets containing the proposed microsyntax decrease typographic readability for someone browsing through tweets.

To summarize, this imposes a heavy cognitive load on victims and search-and-rescue efforts while making parsing easier for machines. However, the task of parsing details from tweets can also easily be performed by large numbers of humans a.k.a. crowdsourcing via volunteer efforts or via tools such as Amazon’s Mechanical Turk.

Simpler, Lighter Microsyntax

The following are examples of microsyntax that are more readable, yet also parseable by machines. All situations are based on the ones in the original proposed microsyntax. Most are directly based on the EPIC microsyntax, with a few simplifications.

  • Rule 1: Always write in the third-person. This takes care of part of the name problem.
  • Rule 2: Instead of using #loc for locations, use “at”. It’s much more natural and not much more difficult to parse.
  • Rule 3: Verbs are actionable. Not syntactic verbs, but English (or French or Haitian Creole) verbs. It’s a trivial task to populate a tool with a dictionary to detect all word forms correctly.
  • Rule 4: Anything that cannot be parsed ends up as the equivalent of the #info tag (see EPIC syntax).
  • Rule 5: The entire text of the tweet should always be available to a human, so whatever information was incompletely parsed can be understood manually, and optionally added to the parsed version by a human.

The general aim is to require as little syntax knowledge as possible, and to keep as close as possible to the natural way people write tweets.

Examples

TWEET-BEFORE: Sherline Birotte aka Memen. Last seen at 19 Ruelle Riviere College University of Porter a 3 story schol building
TWEET-AFTER: #haiti #ruok #name Sherline Birotte aka Memen. Last seen #loc 19 Ruelle Riviere College University of Porter #info a 3 story schol building
Simplified Microsyntax: #haiti #rescue Looking for Sherline Birotte aka Memen. Last seen at 19 Ruelle Riviere College University of Porter, a 3 story school building

This tells the computer us:
What = Looking for someone.
Who = Sherline Birotte aka Memen (identified fuzzily based on initial capital letters)
Where = 19 Ruelle Riviere College University of Porter (automatically parsed based on “at”)
What else = “a 3 story schol building” (i.e. everything else in the tweet)

TWEET-BEFORE: Mirna Nazaire lives in P-A-P at Bizoton 6#12. Entire neighborhood without food. People are dying.
TWEET-AFTER: #haiti #need #food #name Mirna Nazaire lives in #loc PAP at Bizoton 6 #12 #info neighborhood w/o food. People dying
Simplified Microsyntax: #haiti #rescue Mirna Nazaire at PAP at Bizoton 6#12 needs food. Entire neighborhood without food. People dying.

This tells us:
What = needs food. (automatically detected from the verb in the sentence.)
What do they need = food (automatically detected from the object in the sentence.)
Who = Mirna Nazaire (heuristically determined from initial capital letters.)
Where = PAP at Bizoton 6 #12 (detected from microsyntax “at”)
What else = “neighborhood w/o food. People dying.” (Rest of the tweet, unfiltered.)

TWEET-BEFORE: French hospital is now open and ready to receive the wounded at the french lycee in rue marcadieux bourdon
TWEET-AFTER: #haiti #offering #med #loc french lycee in rue marcadieux bourdon #num 30+ #info French hospital is open and ready 2 receive wounded
Simplified Microsyntax: #haiti #rescue French hospital ready to offer help to 30+ wounded at the french lycee in rue marcadieux bourdon

This tells us:
What: Hospital. Also, something to do with medical efforts. (no need to tag explicitly, we can infer that from ‘hospital’.)
Where: The french lycee in rue marcadieux bourdon. (Automatically parsed from microsyntax “at”.)
How many people: 30+. (It’s already a number, no need to state “#num” explicitly.)

These are just a few suggestions. I will be contacting the PIs (principal investigators) of the EPIC project directly with some of my recommendations, but please continue to follow their syntax until they recommend anything different. The current syntax proposal isn’t perfect, but it is more important to avoid fragmenting the tagspace.

ReTweeting: Attribution for Discovery versus Attribution for Creation

25
Dec
2009

During the past few months, I have found myself consuming more news and articles via recommendations from friends and those I follow on Twitter than via traditional source-based subscription (e.g. subscribing to specific feeds or newspapers). Social media discovery is here, and the best part of reTweeted links is that they have already gone through a round of peer review by peers I trust.

Often, I’m tempted to reTweet that content myself, or post it to Facebook, or share it via Google Reader. A few of these media keep attribution intact (e.g. Google Reader adds the “Shared by” metadata for each person in the chain that shared the content.) Others such as Twitter are restricted by the length of the post, so the “RT @” list quickly gets too long and inevitably gets trimmed along the way.

But there’s no accepted practice for how this list should be trimmed. Should you keep the first Tweeter, even if that person is not the author of the content? (E.g. someone who read an NY Times article and tweeted about it.) Should you keep the last reTweeter, who was your direct link to the content in question? What about multiple Tweeters re-posting links to the same content, so it’s not a tree any more, but a forest of links (imagine a directed graph with edges denoting “shared by X to Y”).

The problem is that by including attribution about the process of discovery, we end up attaching higher value to discovery than creation. When someone reTweets a secondary source of information, attribution for the primary source is often trimmed away. This is especially bad for Creative Commons works that require attribution when re-posted, but is bad in general for any kind of work and for authors of that work.

I have come to the conclusion that although attribution for discovery is important, it’s hard to apply consistently in fixed-character-length media. It’s a completely different story in case of original content generated by the tweeter himself/herself: e.g. one-liners, or authors tweeting links to their (longer) content. Attribution for original content is vastly more meaningful than attribution for promoting someone else’s content (although the value of that act is substantial as well.)

So from now on, I will only attribute original content in my tweets and Facebook updates. My intention is not to discount the value of the source that shared the content with me, but instead to promote the original author of that content wherever possible.

Marathon Fundraising: A Noble Goal or Exploiting your Social Network?

Permanent Link | Filed under: Thoughts
20
Sep
2009

I’ve grown increasingly skeptical of organized marathons that request donations from one’s friends in order for runners to participate. Both goals on their own — personal fitness and charitable fundraising — are noble; it’s their marriage that seems unholy to me.

Personal Goals versus Charity:
It’s not like the runner in question is doing anything to directly help the populations in need. Let’s be frank, they’re out there fulfilling a personal fitness goal of running a marathon — which is commendable in its own right. I have tremendous respect for marathon runners’ endurance that lets them sustain 26.2 miles of running. It’s also a great way to meet other people with similar interests instead of running alone. For their part, the charitable organizations also do excellent work to solve the issues they’re committed to. Of course, any such work requires financial support and money must be raised to make their projects successful. Unfortunately, these sponsoring organizations have found a great way to exploit marathon runners’ zeal to fulfill their own fund-raising goals.

Consider these statements:

I’m running a marathon, would you donate to Organization X?

I go to the gym thrice a week, would you donate to Organization X?

Both sound absurd to me for the same reason. If I’m putting in effort towards a personal goal, what does donating have anything to do with it? The case would be different if, say, the person were actively working towards a humanitarian goal with direct benefit to the affected populations, and all they needed was a little financial support.

If they’d said:

I’m working on Project X for the people of Y, our budget was $A but we only have $B, would you donate to fill the gap?

…, I’d gladly have contributed, knowing (1) my friend is actively making a difference, not simply pursuing their personal goals and (2) given that my friend is actively involved in the organization makes me trust it more (the notion of transitive trust.) On the other hand, marathon runners typically have no interaction with the organizations under the banner of which they run, except for training with their assigned trainers and running the marathon. I have not yet met a marathon runner who has also actively participated in the non-marathon activities of the organization that directly benefitted the served populations.

Exploiting Friendships: My chief objection to this arrangement is that it blatantly requires marathoners to exploit their friend connections. Charitable donations should be made with an honorable intent, not because not donating will piss off a friend — which is often what marathon donations end up being. Of course, the sponsoring organizations have hit upon a brilliant idea that fills their coffers, never mind the ethical implications of asking friends to donate because you pledged to fulfill a personal goal.

Here’s an excerpt from the Frequently-Asked Questions web page of one such organization (link intentionally not provided). At least this organization is providing this information upfront; others I surveyed did not have anything on their web site, instead requiring users to submit their personally-identifiable information so they could get in touch with you.

What if I cannot raise the pledge amount?

- Org X has to keep its pledge of raising more than its costs. In order to keep this pledge Org X makes to the community, we will secure your commitment in the form of a credit card. We will only charge it for the difference between the required minimum and the money you’ve raised. [...]

So, in effect, runners are simply trying to recoup their out-of-pocket participation costs by requesting donations from acquaintances. That doesn’t seem very charitable to me.

Overhead: One criterion I have for donating to charitable organizations is their level of overhead: what percentage of each $100 of contributions fails to make it to the served population? Overhead costs (sometimes also measured as Fundraising Efficiency) are genuine, and can never be zero; there will always be paperwork, publicity expenses and the like.

In this light, charitable organizations that spend money on marathons do not seem to me to be using their funds wisely. The counter-argument is that they’re spending on activities that generate more funds for them, so the net gain is positive, which I concede to, begrudgingly. Though, I’d much rather this money be spent on catering to their humanitarian mission than on training urban youth for marathons.

In closing: So that’s my point of view. I’ve had face-to-face discussions on this topic with several marathon runners, and I’ve been criticized as someone who doesn’t support any charitable giving (never mind the charities that I do believe in, and regularly donate to.) I’m sure many of the readers of this blog will disagree, and I welcome you to express your mind in the comments. But let’s be clear about one thing: I respect runners and I respect the work of charities. I just do not approve of the sneaky bundling of both these activities.

The query: Protocol

1
Sep
2009

Update: I implemented this idea at http://queryprotocol.appspot.com. Comments, questions, and suggestions are welcome!

When trying to explain a concept to others over email, I often find myself linking to a search engine’s result pages for a specific query, instead of a single destination URL. These are non-navigational queries, and there is no single result that I expect to be the most important one. Instead, my intention is to provide the reader a variety of links on the topic such that s/he may draw her own conclusions, or solve their own problem — all they need is a nudge towards the right query term to use. If, over time, better search results are available for the same query, then future readers get the benefit of automatically updated results.

E.g. Q: Where can I find the latest numbers related to the spread of the Swine Flu?
A: Try [H1N1 update].

To do this today, I simply link to my favorite search engine, Google. But that does not seem fair to fans of other search engines: Bing, Yahoo!, Altavista, and others. I would prefer to use a notation that allows the reader to use their choice of search engine to obtain the results. Just as we specify our default browser and default email client, we should be able to pick our default search engine.

We have already solved the first two problems (picking default browsers and email clients) using protocol handlers in the operating system. When I pass around a link to a web page, starting with http://, I do not specify the browser it should open in. Your operating system determines that it’s a link to a hyper-text transfer protocol (HTTP) document, and invokes your default browser. Similarly, for emails, the mailto: protocol provides for an application-agnostic way to invoke the user’s default email client to send an email.

It is easy to see how a query: protocol could be implemented similarly. To point you to the search results for a particular term, I would send you the following link: (don’t click on it, it won’t work — at least as of this writing.)

[h1n1 update]

The URL that the above links to is query:h1n1+update. Note there’s no HTTP protocol marker specified. If the OS wanted, it could provide local results as well. This means that the protocol extends seamlessly to Desktop Search as well.

Syntactically, this validates as a URI. Just as the mailto: protocol handler defines standard parameter names, subject, cc, and bcc, similar parameters can be standardized for the query: protocol. These may include corpus restricts (corpus={web, images, desktop, ...}), pagination controls (start=0, num=10), or domain restricts (site=manas.tungare.name).

Implementation is simple: all operating systems and major browsers support external custom protocol handlers. They can be configured as follows:

Protocol Prefix: query
Application Name: /Path/to/Application

The application does not need to be very complicated. It’s a mere stub, which, depending upon the user’s preferred search engine, converts a URI of the form query:h1n1+update to http://google.com/search?q=h1n1+update or http://bing.com/search?q=h1n1+update and opens that link in the user’s default browser.

Eventually, if browsers understand the query: protocol, there is no need for the stub application, and users may be able to share and exchange queries and yet seek results using their favorite search engines.

(The opinions expressed in this blog post are solely my own, and may not reflect the opinions of my employer, Google.)

Grad School 101

29
Aug
2009

This is a collection of tips compiled for a seminar series at Virginia Tech for Computer Science Grad Students in Fall 2008, compiled by Manas Tungare, with contributions from (in alphabetical order) Manuel Pérez-Quiñones, Rhonda Phillips, Pardha Pyla, Naren Ramakrishnan, Bill Schilit, and Andrea Wiggins.

Download Slides

Download PDF

1. Introduction

This document is extremely terse, so you don’t end up spending too much time reading it.

2. Getting Started

2.1. Classes

In your first few semesters of grad school, you will be required to take classes. They provide an opportunity to learn about new areas, and gain some depth in your area of focus. But grad school is not about getting an A in every class. Don’t ignore research in favor of getting good grades.

Be clear about the requirements of your program: you don’t want to discover that you missed taking a required class and have to take it towards the end of your Ph.D.

Quote from a professor (used with permission):

Students need to know what advisors do when writing a letter of recommendation. I get requests to write letters of recommendation, and all I can say is “s/he was in class frequently”. Students need to know this, not just to avoid that awkward moment of asking for a letter of recommendation that might not be the one they want, but also so this might serve as motivation for them to attend class. They can’t be shy. They need to be known by professors. Ask questions. Go to research group meetings. Read their papers, etc.

2.2. Choosing an Advisor

Find an advisor whose research interests closely match yours. This is obvious. What is not obvious is the next part: find an advisor whose work culture and personality match yours. You will be working with this person for the next several years, and if you do not enjoy a great working relationship with your advisor, things might get rough.

How do you find out about an advisor’s personality? Talk to their current students and ask around. You’ll need to read between the lines of such conversations, keeping in mind that because they work with that advisor, (1) they either genuinely love working with him/her or (2) they will not talk ill of him/her for fear of retribution.

Ask around: some advisors graduate students rapidly, while others are seldom around, so their students take longer to graduate. Some advisors will provide for frequent, short interactions (face-to-face, email, etc.); others will require you to have completed a significant amount of work before they agree to meet you in person. Some encourage independent work that is mentored sporadically; others may engage in more frequent collaborations. Hardly any will provide hand-holding-this is grad school.

Faculty members can be roughly classified in two very broad groups: senior versus junior. Junior faculty looking for tenure must publish prolifically, while senior faculty have more experience in the field-both are good qualities that will ultimately help you. Weigh these factors if you ever need to pick between one from each group.

Before entering into a long-term relationship with someone you’re interested in, a good way to figure out if you’re compatible is to … do an “Independent Study” with them. This is a no-commitment research-oriented one-on-one project. It’s OK to double up class projects or follow them up as independent studies – talk to the faculty member involved.

Understand what professors want/need from you: support for the primary area of research they are interested in, and willingness to take that research forward in meaningful ways. Funding for graduate students comes from research grants, and if you help write one, you may get the money that the grant brings in.

Here’s a quote from a faculty member (used with permission):

For example, I often email students things like “Hey, this conference call seems close to your work. What do you think?” A negative work student (which, I might add, I have learned to spot quickly and don’t often want working with me) will often reply “Interesting, do you really think we should publish there?” That is clearly the wrong answer. If I didn’t think we should publish there, then I wouldn’t have forwarded this to the student.

The other extreme student (which is typical of the students that I work with) replies: “Very interesting. I went to their website and looked at a couple of papers from last year. They definitely seem similar to my work. I have taken the liberty of jotting down some notes about possible papers that we could write. Let’s discuss these next time we meet. Thanks for sending it.”

2.3. Mentoring

Your advisor isn’t your only mentor; find a senior student in your program with similar interests (and, if possible, the same advisor) who is willing to give you some sage senior advice and help you avoid a few common pitfalls. Peer mentoring can be truly invaluable. Astronauts and professional athletes aren’t the only role models; find a high-performing person at the next higher rank from you and emulate their behavior.

Quote from a Ph.D. student:

When I was a Master’s student, I tried to adopt the practices of a successful PhD student, and it really paid off. As a PhD student, I try to meet the expectations for junior faculty so I’ll be better prepared for that role.

While a dissertation is a very individual activity, there are patterns that all grad students go through that are similar (that’s why Ph.D. Comics is funny). Cultivate early, a group of peers, including a few more advanced students, that have experienced the ups/downs of doing a Ph.D. This will help you survive the difficult parts and help you celebrate the high points along the way.

3. Research

3.1. Literature Review Basics

Any research project begins with a review of the existing literature in the field (or at least, that’s how it should be.) Be exhaustive while citing sources; do not open yourself up to claims of plagiarism, even if you are honestly pursuing your own research. Look up citations for stuff that seems like it may have been done before. Ask your peers (lab mates, professional colleagues at other institutions) if they are aware of any papers near your area.

Posting specific questions about related work to your social network is a good way to learn about work that might not have been widely cited. Some colleagues might offer you a sneak peak at unpublished work. Respect the confidentiality that is implicit in the sharing of such work.

3.2. Managing Research

Research requires as much management as pure effort. You must be able to manage your time, your resources, your sources, information you collect, information you come across, information you generate, samples of stuff you record from experiment participants, interview transcripts and recordings, videos, log files from computer software, etc. Make sure you store these items safely.

There is software to conduct every kind of research activity: pick the best tool for the job.

Word-processing programs that were once adequate for undergrad-level reports and essays cease to scale up to the demands of academic publishing. Consider LaTeX for academic writing: it is free software available for all major operating system platforms, and will not cause corrupt documents, a common occurrence with proprietary software that reads/writes undocumented binary file formats. The effort required to gain familiarity with LaTeX pays itself back several times over during an academic career.

BibTeX is a tool and file format for managing bibliographies, along with several applications that help manage BibTeX-formatted bibliographies. Keep a single library of bibliographic material starting from Day One. This will save you several hours when collating annotated literature to cite in a paper or article.

3.3. Communication

Do not underestimate the value of communication in research. Not only will you perform research by yourself, but you also will be required to talk about it with your advisor, discuss it to lab-mates, write about it in papers and articles, and present it at conferences.

Get feedback from your colleagues before communicating with a wider audience – many heads are better than one. You will be surprised at what other people will spot in your work that you had somehow managed to overlook. This applies equally to papers, talks, presentations, defenses and everything in between.

4. Conferences

Starting to write early on makes your writing better over time. Make your presence known in your research area: publish interesting stuff, but not for the sake of publishing something. Some call this the `least-publishable unit’ model of publishing and many disagree with it. Submit meaningful, completed works of research to the appropriate conferences and journals.

Be proactive in submitting to conferences: do not wait for your advisor to come across a CFP (`Call for Papers’). Subscribe to announcement lists in your field where a lot of CFPs get posted. Your advisor can help you locate these.

Attend conferences even if you’re not presenting during that particular year. It is important to stay abreast of research in your area. Often you will have to pay your own way to attend a conference in another country; this money is well-spent.

It is said that during conferences, hallways are where the action is, not the session rooms. That is where the networking happens. Meet people from your field: these are the same people whose work you build upon, who will build upon your work, and contribute to the same scholarly community. In addition, some of these may be interviewing you after you’re done, either as faculty search committee members or as industry researchers.

Attend smaller research meetings too: departmental get-togethers and seminars are not a distraction from your regular work, but a part of it. Don’t be left out!

If you’re in your second year or higher, prepare an elevator pitch. Be ready to talk to complete strangers about what you do. Prepare individual spiels for the following sets of audiences: your grandma/grandpa, your friend from high school who is pursuing a degree in fine arts, your friend from undergrad in Computer Science, your lab-mates, people in your research area, and finally, your advisor. These are sorted by increasing levels of awareness of the field and research experience. This means that you can dig into several levels of detail as the need arises (sometimes also known as the pyramid model of communication.)

4.1. Presenting at Conferences

A conference presentation is not a verbatim recitation of your paper. Often, the time available to presenters during a conference session is barely enough to whet the appetite of your audience and entice them to read the entire paper. Do not try to cram every single finding from your paper into the 20-minute talk.

Practice presentations before a crowd of your peers before you go to that big conference. There is no substitute for rehearsing. Do not ever read from your slides. Do not EVER read from your slides. There are numerous tips for how to be a better presenter and public speaker, far too many to include in this document.

4.2. Student Volunteer Opportunities

Check whether conferences of your interest waive registration fees and/or provide additional perks in exchange for volunteer service during the conference. If you feel you are capable, take up service positions and be of assistance to the community at large. Apply to be a Student Volunteer as soon as (or even before) you submit your paper. Often, deadlines for Student Volunteer applications are earlier than paper submission deadlines (though this varies by conference.) If accepted, the conference organizers will pay a significant part of your travel expenses (registration, hotel, etc.)

`SV’-ing also is a great opportunity to meet your peers. These are other students who will one day be your research colleagues, collaborators on grants, paper reviewers, co-authors and life-long friends. Meet them, keep in touch.

But remember that your academics come first; service should not come at the cost of your research output.

5. Internships

Internships offer students a perspective on where their skills might be useful outside of the academic realm. Even if you do not intend to pursue a career in industry, opting instead for an academic career, an internship provides a unique perspective into your own work and how it fits into the research community at large – something that a summer at school would not be able to provide.

Make sure you plan this with your advisor well in advance. Do not spring a surprise on him/her after you receive an offer and rent an apartment. Some advisors may prefer that you not go on an internship, but continue to work on your research so you may graduate earlier. Others encourage their students to pursue internships, while a few others may actively provide you leads for promising internship positions. Most research internships are gained either through your own research reputation, or through your advisor’s professional contacts. Thus, a conversation with your advisor on this topic should be held earlier rather than later.

Researchers from industry often scrutinize their intern candidates at conference presentations and other socio-professional venues. You might even receive a spot offer over a casual conversation with your would-be mentor if they are impressed with your work.

While the internship application process is not as rigorous as that for a full-time position, there are few positions and they’re filled as soon as a candidate with matching skills is found. Apply early. Quote from a Ph.D. student:

Don’t be afraid to pursue opportunities. I was always intimidated when I saw solicitations for fellowship applications, travel funding, student grants, awards, etc, but I learned that it doesn’t hurt to apply, and sometimes you’re more qualified than you think you are.

Some research institutions offer internships that do not involve rigorous research, but instead utilize your prototype-building skills to push their research agenda. If you’re in your early years of the graduate program, these are fine ways to get you the proverbial foot in the door and a deeper insight into that institution’s research program.

While at an internship, do not completely ignore the research you conducted back at school. Advisors will understand that your current time demands must favor your current employer, but a three month hiatus in school research can lead to problems resuming it once you’re back.

6. Networking

Know your community and try and get them to know you.

Solving an important research problem sitting in one’s windowless cubicle is good, but networking with peers at research conferences and other academic venues increases one’s chances of getting a real job.

Most academic networking happens at conferences. Make sure you carry business cards so you can exchange contact info easily if required. Though, quite often, you will end up exchanging cards with your peers – who also just got their cards printed! – you never know when you might meet someone who really would like to get in touch with you. Since most academic positions are filled via word-of-mouth, it’s always good to be easy to contact.

You may be invited to spontaneous group lunches or dinners with newly-made acquaintances, which often lead to excellent conversations to remember for a long time. After all, these are people from your own research field who have all congregated to exchange ideas with one another. (But of course, don’t be pushy or show up uninvited.)

If your advisor, committee members, or senior students are attending, they may introduce you to their acquaintances from other schools/companies.

Many advise removing your social networking profiles, such as Facebook or Twitter profiles. While this advice has some merit if your profile has objectionable content, that is likely not the most common case for this audience. As information grows, one’s social network is a valuable resource to be tapped into for relevant, up-to-date news from your field. Often, such nuggets might be found in your friends’ status updates. After several conferences I’ve been to, attendees have taken the initiative to start online groups to continue the conversation beyond the conference. It is a good idea to participate in these.

There also are networking conferences designed for specific audiences; if you are a woman, consider attending the Grace Hopper Conference. If you belong to a minority group in computer science, consider attending the Richard Tapia Celebration of Diversity in Computing. There are likely be others in your own field as well.

7. Preparing for the Real World

7.1. Tenure Track (Academic Positions)

For an academic position, you will be evaluated on your ability to chart your own research agenda, and pursue it to fruition. This includes coming up with hypotheses, conducting experiments and publishing your results. As the first two steps are opaque to an external observer, you are thus judged primarily based on your publication output. Whether you like it or not, it’s a publish-or-perish world.

Always keep an updated copy of your résumé and CV available online. A CV (curriculum vitae) is a complete record of your relevant accomplishments and forms part of your application dossier for academic positions.

If your university supports student involvement in school governance, become involved in governance committees. This may seem like a distraction from your studies, but it is excellent preparation for a faculty position in which you will be expected to contribute in service roles in addition to research and teaching.

Do as a student what faculty do: writing research grant proposals. You may start off by assisting your advisor in writing sections of their grant proposals that are related to your research. It is often possible to turn your dissertation proposal into a grant proposal. Even though students cannot be officially co-PIs (Principal Investigator) of a grant, the experience you will gain even from being a nameless contributor is priceless.

7.2. Industry Track (Research Laboratory Positions)

Industry values slightly different skills in budding researchers than does academia. Industry often runs on much faster timelines than academic research, especially in terms of bringing products from the laboratory to the mainstream. Thus, in addition to fundamental research, an industry researcher plays an important secondary role in “productizing” research ideas. This involves developing prototypes and working with development teams to implement these on a larger scale.

It is a belief among some graduate students that a career in industry limits one’s freedom in what you may work on. While it is true that an individual researcher’s broad research direction may need to align with the company’s strategic vision, there is often wide scope for researchers to define the specific problems they are interested in working on and pursue those with their team. It is often the case in academic (though lamentable) that choice of research direction is dictated by available funding opportunities.

8. Closing Statements

Take care of yourself first. Paper submissions, assignments and pending work can take their toll on your health if you ignore yourself. Make sure you eat well, on time, and maintain the energy that is the foundation of everything else.

Enjoy your time here. You’re doing this because you love it!

9. Resources

One-button Phone Number Sharing

10
Feb
2009

Send this Phone Number to the Current Caller

How often have you found yourself calling a friend to get the phone number of a mutual friend? And then having to hold the phone while your friend pulls up the contact list on their phone, then recites the number to you, and then you write it on paper because your phone won’t let you add contacts while you’re on a call, and then you misplace the number you wrote on paper, ad nauseum. Why isn’t there a single button that says “Send this Phone Number to the Current Caller”?

It’s a common problem. You’re out and about, and realize you need to call a specific person, but you don’t have their phone number (or more often, you have it on your desktop computer, or your laptop, but that doesn’t do you any good in the current situation.) So you decide that the best thing to do is to call a mutual friend and ask them.

When they receive a phone call from you, they’re fumbling to hold the call while they look in their address book. (That is, if they’re lucky, and if their phone actually lets them open the contact list while they’re on a call.) More often, what happens is that they tell you to hang up while they consult their address book. And then you have to hunt for a piece of scrap paper because your phone won’t let you add a number to the list like that.

What the world needs is a button next to each phone number in the contact list that only appears whenever you’re on a call. The button, when pressed, sends an SMS from you to the current caller, and contains within it the information from the contact record you just selected. It doesn’t have to be too fancy, a two-line VCF record should do nicely.

If the recipient’s phone understands this method of contact transfer, it can prompt the user and import it automatically. If not, the user can still read the SMS herself, and dial the number. No more paper, no more fumbling, no more “let me call you back”.

It’s so easy, a caveman could do it. If only phones implemented it!

My Research Philosophy

8
Feb
2009

I wrote this recently, not as a blog post, but for another purpose. I figured I’d post it here like I do everything else.

Re•search: noun. Investigation or experimentation aimed at the discovery and interpretation of facts, revision of accepted theories or laws in the light of new facts, or practical application of such new or revised theories or laws.

—Merriam-Webster Dictionary.

The last part of that definition has always been the chief motivator for me in my research — practical application. While all research seeks to discover universal truths and deeper meaning, I strongly believe that researchers have a responsibility to contribute to society in other tangible ways as well.

Just as Gutenberg’s invention of the printing press in 1439 made literary works accessible to everyone, the Internet is likewise speeding up the propagation of knowledge now and will continue to do so in the decades to come. We are on the brink of a cultural revolution where ideas, prototypes, discussion and research know no boundaries of location or time. The Free Software Movement is promoting users’ freedom to understand and explore computer programs. The Creative Commons project encourages authors, scientists, artists and educators to distribute their creations under licenses that foster the sharing of ideas, encourage discussion, engender a culture of openness, and speed up innovation. This provides enormous opportunities for researchers to collaborate in real-time across institutions, countries and continents, and to serve the community by disseminating their research results via public blogs, videos, slides, prototypes and designs.

As a researcher in Human-Computer Interaction at the Dept. of Computer Science at Virginia Tech, I have developed several tools and prototypes that would be of benefit not just to researchers but also to computer users. It is by studying their habits that I designed these tools — to them, I owe these tools. I work in the area of Personal Information Management (PIM), and study how users access and manage information such as files, calendars, email messages, contacts and bookmarks on multiple devices. I release all such tools and software to the world at my web site under licenses that permit anyone to inspect the source code, build upon it, and benefit from it.

In the process of my research, I developed a program to access Google Calendar which now has over 25,000 users. A calendar converter program I wrote is used by an average of more than 200 users per day. During Sustainability Week 2008 at Virginia Tech, I released a Blacksburg Transit Schedule application for cell phones to encourage Blacksburg citizens to take the bus instead of driving. It is used by about 300 users every month and growing.

In the spirit of working on real products that are used by real people, I interned at Google three times during my Ph.D. (2005, 2006, 2007.) In 2007, my project enabled users of Google Book Search to clip personalized content from books and embed that into their own web site or blog. This enables teachers to excerpt from literary classics for their class home page, for literature scholars to debate the nuances of texts, and for commentators to dissect parts of books. My intern work was covered by several news outlets, chief among them, at Google’s Corporate Blog.

Academia encourages published work—publish or perish, they say—while original contributions such as new ideas and untested directions are undervalued in the traditional ways of evaluating research. The Internet changes that too. Several times when I have come up with ideas that may or may not be viable research projects, I have written about them on my blog. The public scrutiny and invaluable feedback I’ve received made it easy to separate the wheat from the chaff. My advisor has always been supportive of those ideas that were encouraging research directions: the latest among them resulted in a paper that has been nominated for the ACM SIGCHI Student Research Competition 2009.

An area that I have recently been concerned about is the open publication of raw data sets. I perform human experiments which are reviewed by the Institutional Review Board (IRB) for ethical compliance. There is inherent tension between the privacy implications of human experiments and the Open Science dream of being able to publish all experimental data publicly so that others may analyze it in novel ways. I plan to investigate the ethical, moral and legal responsibilities of such an endeavor, recognizing that we as researchers owe two allegiances: to our experiment participants and to the scientific community, in that order.

I am happy to be a researcher at a time in our history when competitive collaboration trumps closed confidentiality. Science and innovation can only progress faster when information is freely shared among researchers, scholars and citizens.

10th Anniversary of my First Shareware Paycheck

Permanent Link | Filed under: Life,Thoughts
19
Jan
2009

10 years ago, on this day, I received the first payment for a tiny shareware program I wrote. It was a one-trick-pony, a birthday reminder program.

Folks around me will tell you I’m bad at remembering things, and always choose to write everything down. So I wrote a program to keep track of friends and birthdays, and popup a reminder on the right day, perhaps a few days earlier if I needed to buy a gift first. As a teen writing and distributing my first-ever commercial piece of software, I had named it eponymously as ManasTech Birthdays. I wrote it, released it, and sold a few copies (nothing astronomical, but yeah, it was fun to see the checks coming in.)

My First Shareware Payment

As I look back nostalgically, several thoughts cross my mind today. The more things have changed, the more they have remained the same. I loved writing software then, I love writing software now. I used to sneak out of classes and stay up late nights to code up the latest idea that crossed my mind. Today, I procrastinate on my research and take time off to write little scripts and tiny widgets, that — before you know it — have hundreds of users and need regular maintenance.

Then, the norm was to release products as shareware, without the hassles of finding a publisher or having to stock shelves with packaging. All you needed was an Internet connection and a program that solved a need. Today, the norm is to free your software, and release it into the wild. The Free Software Movement has been gaining ground ever since.

The most interesting aspect is perhaps the domain in which I’ve been working. The Birthday Manager helped store your personal information — contacts and calendar events. Today, I’m involved in Personal Information Management research, which is pretty much the same topic. I even wrote a paper detailing how people manage their calendars. Little had I known 10 years ago that I would be fascinated enough with personal information to pursue a career in it.

Sometimes I wonder what the next 10 years will be like.

Update: P.S. For those curious about how I got hold of the check image for this blog post: yes, I’m a digital packrat and have a copy of all my files dating back to 1997 on my current laptop.

Book-as-Blog: Encouraging Reading by Posting a Chapter at a Time

17
Dec
2008

I realized I haven’t picked up a book in weeks, (non-academic book, that is), but I’ve read more than my fair share of blogs in that same time. I wonder if part of the reason is the longer time commitment required by a book. This prevents it from being read quickly and keeps it forever on my wish list. If so, then how about a service that breaks down books into blog-post-sized chunks and publishes them every few days?

The idea is inspired by, — nay, stolen from — Kevin Kelly, who is reissuing his 10-yr old book as a blog (hat-tip to Seth Godin’s post on the topic). His reasons are different, though. The book is out-of-print, and is already available as a downloadable PDF from his web site. Making it available as a blog is just another way of spreading his ideas wider, which is a great idea.

But apart from that, I like the idea of chopping up a book into chapter-sized chunks and making them available to readers one at a time. Not for any economic reasons, but because attentional resources are so scarce these days. A few times during the day, I have some free time which I use to read a few blog posts. If I ever thought about picking up a book during these breaks, I wouldn’t do it, simply because of the (arguably artificial) time commitment issues it raises in my mind. But talk about a chapter-sized, or even smaller blog post, and I’d read it.

Of course, not all book content has an affordance for this kind of splicing and dicing. If it takes several minutes for a reader to re-establish context from the last blog post, the purpose is lost. Some authors would consider their books a work of art too precious(ssss) to split it up into anything smaller. That’s also the reason why bands are often reluctant to sell singles instead of entire albums (apart from the record labels preferring to sell you 9 lame tracks bundled with 1 great track for $10 instead of $1, thank you very much.) But several non-fiction books could verily adapt to such a format.

The book-as-blog need not be free (as in no charge.) Sure, charge me for it. Implementation would be easy, charge me a micropayment and give me a secret watermarked feed URL. With so much new content licensed under a Creative Commons attribution license, it’s also possible to develop a web service that does this for liberally-licensed and public domain works. This is compatible with Creative Commons Attribution (BY), Attribution-ShareAlike (BY-SA), Attribution-Noncommercial (BY-NC), and Attribution Non-commercial Share-Alike (BY-NC-SA) licenses (but I’m not a lawyer, this is not legal advice, blah blah.)

Maybe something like this will finally get me back to the several-books-a-month club I used to be a member of, until I discovered this newfangled shiny thing called the Internet.

Software and the Democratization of Production

Permanent Link | Filed under: Thoughts
16
Nov
2008

The availability of consumer software in this century has democratized the production of … well, everything. Parts of the current creative landscape seem no different than Marxist philosophies of workers owning the means of production, with one exception: the workers aren’t doing it for money, they’re doing it for fun.

I recently watched Be Kind, Rewind, that’s what has inspired this post — at least the spark behind it. In the movie, two video store employees recreate popular movies using a video camera when the original tapes get erased by a mysterious magnetic force. Their videos were, of course, of very low production quality, but the general idea was still valid: that amateur-grade equipment is approaching professional grade equipment.

That made me realize how easy (or at least, possible) it is to create movies with affordable software on consumer hardware. When things were still in the analog domain, you would need specialized hardware to be able to shoot on film, capture audio on expensive multi-track recording equipment, and edit it all by splicing film together. Now, all you need is a digital video camera and a general-purpose high-end computer (which, incidentally, can also be used for other tasks, so is cheap.) The barrier to entry for amateur film-makers has almost been removed.

Ditto with music production — it is possible for a musician to set up a studio in his/her basement with cheap equipment that doesn’t cost an arm and a leg. The quality of recordings made with these tools is comparable to what the studios churn out.

Publishing is no longer the domain of the publishing house — Gutenberg’s printing press now inhabits every single computer that has a printer attached to it. High quality design tools and cheap reproduction has made publishers out of everyone: flyers, posters, announcements, articles, books — all of them required professional assistance in the past. Newer genres such as wiki articles, blog posts and Usenet postings have been made possible by the Internet.

An entire “prosumer” grade of still cameras has made its way into the hands of millions of photographers. Shooting digitally has minimized the variable costs associated with photography, thus unshackling the amateur from budgetary constraints that professionals never had to bother about. That brings them one step closer to competing with professionals, e.g. by selling their shots as stock photos online.

As the economy turns digital, distribution is also taken care of democratically. Earlier, it would take a promoter, someone who could invest the initial millions, to take a creation to market. Today, it’s as easy as uploading it to YouTube or selling it on iTunes or printing a book on Lulu or making a shirt at CafePress. If it’s good, it will go viral. Simple as that.

Nowhere is this change more apparent than in the recently-concluded Presidential Election in the United States. Barack Obama is spoken of by many as the first YouTube president. Indeed, the numerous amateur videos posted by his fans to YouTube and Twitter and on their blogs played a major part in spreading the word about his ideas — in a way that pre-Internet generations could never have.

If I were an anthropologist circa 3000 AD, the last three decades would show up as a significant inflection point in a graph of human achievement and creativity.

Here’s to software!

Email should have Expiration Dates

2
Nov
2008

The entire idea behind this blog post has been summed up in the title, so all I need to do now is to explain why I think email should have expiration dates, and how that would make personal information management better.

Email, as we all know, started off as a way of sending short messages to colleagues within a department. It has since evolved into a monster of a tool that does everything it was never designed to do. The paradox is that it is exactly the kinds of messages that email was designed to handle that cause me the most trouble these days.

  1. I often receive email from my friends about meeting up for lunch. This is important, but only for that particular day (and that too, if I receive it before lunch time).
  2. My research collaborators send me email when a paper submission deadline is near, with the draft attached to it. Those emails are not nearly as important after the deadline.
  3. My friends and I exchange travel plans over email, but is it as useful after the trip is done?

These are the kinds of messages I’m talking about: important but time-sensitive. Then there are others which are not really important, but simply one-time notifications that I can take action on and then forget (“bill is due in 2 days”, “X added you as a friend”, “your order was received”, “your package has shipped”, “free donuts in break room”, “we are not meeting today”, etc.)

Why do they linger on in my mailbox for years? They become indistinguishable from the really important email that I need to save for years, such as some very interesting and intelligent discussions I have had with others. Note that I’m not including spam in this discussion, because in my opinion, there are adequate spam-filtering tools circa 2008 that perform well enough for most users for the most part with an acceptable false positive rate. Not perfect, but acceptable.

The Keeping Problem

Email is no longer ephemeral — people hold on to their email for years. This is what results in the Keeping Problem in Personal Information Management: there is so much of information coming at us that we don’t want to spend the time to decide what to keep and what to trash, so we end up keeping all of it. We hope we never have to do spring cleaning, and instead rely on search to find what we want.

Filing is not the answer

Many people file and tag their email, but the question is, is the cost of doing so (time as well as attention) worth the payoff at the end? Consider the two alternatives: spending 10 minutes each day filing your email, versus spending an hour a month looking for that one email. Pretty soon, the second alternative starts looking better while swimming in a sea of email with no signs of abating.

Same needle, bigger haystack

The bigger the haystack grows, the harder it is to find the needle. The solution is to reduce the size of the haystack. Automatically. Most other solutions empower the user to filter, sort, file, tag and do other sorts of things to their email that do not scale very well. That’s where Email Expiration Dates come into play. For it to work, they need to be (1) defined and (2) honored.

Defining an Email Expiration Tag

Email expiration tags can be defined in several ways by several entities that handle the email message at some point of time in transit.

  1. By the sender of that email who cares about the recipients;
  2. By the email client (MUA) used by the sender, automatically inferring from certain common-sense words; e.g. subject contains lunch and body is less than 100 bytes;
  3. By the email server software that intelligently tags email based on common patterns seen across multiple users;
  4. By the recipient’s email client, based on heuristics;
  5. By the recipient’s email client, based on a user-defined rule set;
  6. Or explicitly by the recipient in a spring cleaning session.

Honoring an Email Expiration Tag : Fully standards-compliant

RFC 822 allows custom tags (Sec. 4.7.5). These are commonly referred to as X- headers, since the specification requires that all such tags be prefixed with “X-”. Many applications built on email make use of such tags: mailing lists use the X-List-* headers to specify the list name, subscribe URL and unsubscribe URL in a mail message. Spam filtering software such as SpamAssassin assigns a score to each email, saved as an X- header. Mail clients are free to interpret these tags as they see fit.

An expired email will not be automatically deleted if the user does not want it to be. This is important for archival purposes and to satisfy the stringent reporting requirements of the Sarbanes-Oxley Act. But now the user can make a one-button choice about whether or not expired emails be deleted, archived, moved away or kept around.

With help from legitimate bulk email senders (not spammers)

Bulk mail such as Facebook notifications could have expiration dates set to “one week after receipt”. Bill reminders could set the expiration date to be “2 days past deadline” (and then send another notification if payment is not received by then.) Donut announcements could expire at the end of the day. Talk announcements could expire at the end of the talk.

Fixing the post-vacation blues

Returning from a vacation is no longer refreshing, as we are thinking about the sheer volume of email we need to process once we get home. If I was on vacation when the donuts were on the table, I should not be bothered about it when I return. Go away! If it’s an invitation to a talk that happened while I was away, I don’t need to hear about it now.

What will it take for adoption?

Defining a standard is no use if it isn’t used. The best way for such a solution to be adopted is for a major email provider implement it themselves, perhaps in a limited beta? On the interface side, this requires two additions: one for sending, one for processing received messages. The widget at the sender’s end is simply a calendar picker, or a drop-down with relative dates (“tomorrow”, “next week”, etc.) At the receiving end, it’s a three-way radio button that lets users “Delete”, “Archive” or “Leave alone” expired messages.

Till then, it’s back to manual spring cleaning. Oh well.

Acknowledgments: I have had several stimulating discussions with my advisor, Manuel Pérez-Quiñones, and my colleague, Pardha Pyla, about our respective email filing strategies, (that mostly began as venting sessions). This idea no doubt borrows from my analysis and conclusions based on some of those conversations.

Free as in freedom, not as in beer

1
Jul
2008

I received a request today in the mail about one of my projects that is available under a free software license. It’s a web template system that I wrote to scratch a personal itch. Its hallmark feature is that it has no features, at least none that contribute to the bloat that’s rampant in Drupal and Joomla and their ilk.

His email was very well-written, asking about some of the specifics of the license, and how he could undertake projects for his clients building upon my framework. After I wrote a detailed reply to him, it seemed like a good idea to post it to my blog, for there are many who’re not particularly clear on how free software licensing works.

I want to use your templating system to build static websites for personal and commercial projects. I don’t have lots of money so I can’t promise much now but later if I will be able to make any money I will happily donate for this project.
[...]
I like open source projects because it is fun to learn how magic happens. I don’t want to use your code without permission because I just personally don’t think it is right thing to do. I have no problem giving you credit for this system but I need your permission to use it for commercial use?

Sincerely,
[redacted]

And my reply:

Hi [redacted],

I’m glad you found the site and my projects interesting and useful, and thanks so much for writing back to let me know!

I think free software is a great way to learn and understand other people’s code, that’s why almost all of my projects are open-source with the license to tinker and play. All I ask in return (via the Creative Commons license) is attribution back to me if you use it in a project. I’ve licensed this as an Attribution-ShareAlike-Noncommercial license, so you’re free to use it as you wish in any personal project as long as it is non-commercial: e.g. for an organization you belong to, or an academic department or program.

Things get a little more interesting when money enters the picture. While I’m not doing this (releasing my software) for the express purpose of making money from it, it does not seem right to me that someone else benefit financially from my work with no benefit to me. So, I politely ask that if you’re planning to use this commercially, you should contact me for a separate license (the code will then be dual-licensed, and you can pick either the paid commercial license, or the default un-paid non-commercial one.)

You don’t have to pay anything right away, and can play with the code as much as you want. But when you bag a client who wants to use a system based on my code, we can talk about royalties. That way, you retain the freedom to examine and modify my code as well as get a paying client, and I do not feel that someone has taken undue advantage of my generosity. This is how the open-source model was intended to work, and the free really refers to freedom, not free as in no-charge.

I’m glad you contacted me to check for permission first, and I got the opportunity to clarify. Often it’s quite tricky, and lots of people have lots of misunderstandings about how free software licenses work.

Regards,
Manas.

A Bad Mother’s Day for Mother Nature

Permanent Link | Filed under: Life,Thoughts
12
May
2008

Let’s see:

  1. Cyclone in Irrawaddy Delta, Myanmar

    Myanmar Cyclone
  2. Volcano in Chaiten, Chile

    Chaiten Volcano
  3. Earthquake in Sichuan, China

    Sichuan Earthquake
  4. Tornadoes in Central United States

    US Tornadoes
  5. Wildfires in Central Florida, United States

    Florida Wildfires

May the souls of all the victims of all these disasters rest in peace. May the survivors find the courage to get back to their lives, even as they grieve their loved ones.

And yes, we can help them in their efforts.

Readymade luggage kits for baggage-less air travelers

7
Apr
2008

Now there’s a business opportunity that today’s airline industry and airports have created: why not sell pre-packaged suitcases at airports to scalp travel-weary passengers whose luggage has landed in Murmansk?

Here’s how it would work: I’d walk up to the Lost and Found desk of the airline, usually fortified behind several layers of arrows pointing upward, downward, or in all other sorts of directions in which I cannot walk; barriers laid down with those flexible tapes that you can simply unhook and pass through; or behind a scruffy-looking bouncer. They would then cheerfully inform me that my luggage has, indeed, failed to follow me around in my travails around the world, and make me fill out a 3-page form describing my “small black bag” in as many words. After a state of shock, worry, desperation, and finally, anger, I would quit discussing this with the airline folks and move on, resigned to my fate.

That’s when I would notice the conveniently located “Missing Luggage Mart”. I’d turn to the enterprising store-owner and tell him/her my size, and the duration of my trip. He/she would whip out a readymade suitcase of shirts, t-shirts, trousers, undergarments, socks, shorts, a belt, a cellphone charger, a toothbrush, a toothpaste, a tiny bottle of shaving cream, a tiny bottle of shampoo, etc., and I would be on my own merry way.

And a towel, of course. Nobody should ever be without their towel.

Separating Phone Numbers from Phones

17
Jan
2008

Last night, I left my cell phone in my car. As with most of my follies, I realized it a few oh-no-seconds after I got home, but only after I’d taken off my jacket, gloves, cap, shoes and socks. It was an unnecessary walk in below-zero temperatures, but it got me thinking about phones, identities, what’s wrong about it all, and how it could be made better.

The problem is this: phones and phone numbers are tightly coupled together [1]. No wonder people keep their phones close to their heart — their personal identity is locked in it. If I don’t carry my phone, there’s no way to answer calls that I receive at that phone number. I can perhaps check voicemail from another phone, but still cannot make and receive phone calls under my own phone number.

Now compare this to email: if you go on a vacation without your own laptop computer, it is still possible to “borrow” someone’s random computer and check your messages. The messages you send will have your ID (your email address) attached to them, and the people you interact with will have no idea what machine you used (and there is no need for them to know.)

Why can’t we have a phone identity (our phone number) separate from the device (our phone) that is used to access it? If I forget my phone in the car overnight, I should be able to just add my phone identity to the home phone. That way, all calls that would have been received by my handset in the car will now be received at my home phone, and callers/callees will not know a thing. The next morning, I would re-establish my identity on my cell phone, and things will be back to usual.

I’m not a big fan of call redirects: that puts a temporary bandage on the problem instead of actually solving it. I don’t want my identity routed to another identity: I want to be able to use my own identity wherever.

This would also open up the market for multiple-identity phones. A couple can add both their identities to a single home phone in the evening, while they carry individual cell phones during the day. Forgot your cell phone at home? No problem, just borrow a loaner phone from the office receptionist and use it all day long (just as you would borrow a loaner security badge if you forgot yours). It would also make it easy for a group of people to be able to respond to a single phone call, e.g. despatch services for emergencies. A group of doctors could share a single phone number. Whoever is on emergency call duty would add the group phone number to his/her cell phone, and remove it after the duty ends.

Historically, a phone number has been tied to a phone, mostly because of technical constraints, beginning with the days of the human-operated telephone exchange. Email has shown that identities (email addresses) can be independent of devices (computers), that many identities can share a device, and many devices can be used by a single identity.

It’s an easy conceptual step forward to move to the many-to-many model instead of the current one-to-one. But there is a tremendous amount of change required of the infrastructure, and it won’t be cheap. But since I don’t happen to be in the business of implementing it (at least not yet!), so I’ll just write about this idea and hope that someone picks it up. Maybe someone will listen, and like it, and implement it.

Then I won’t have to walk out in the $#@*%$#^ snow to fetch a %$#%#$* cell phone.

[1] The more pedantic among us will point out that GSM phones keep the user’s identity on a SIM card, and CDMA phones maintain a single ID tied to the IMEI number of a phone. Although possible, that does not make swapping identities across phones easy: in the first case, you must have your current phone handy, which does not help solve my problem of having left the phone in the car overnight, and the second one requires a long phone call to the carrier to make the change. Neither is as quick or handy as the method I envision.

A German, a Brazilian and an Indian walk into a Conference

8
Dec
2007

A German, a Brazilian and an Indian, all three student volunteers, walked towards the conference office the day before a conference. As it happened, the student volunteer chair had had some trouble reaching the venue, and there were no specific instructions for the volunteers at that time. Nobody else had any information or any plan to hand out either. (Turns out they did, but our protagonists did not know at the time.)

The German noted this and wondered how they could be so ill-prepared and without a plan just one day before the conference. The Indian remarked that they might just be running late and here’s hoping that everything would be fine and dandy by the next day, the day of the conference. The Brazilian said, oh well, if they don’t have anything for us to do, we’ll just go to the beach and have fun instead.

While this anecdote might not have had the punchline you might have been waiting for, (especially given the clichéd setup), it’s a nice illustration of how cultural upbringing shapes our thinking in the most trivial of incidences in life.

Block Facebook Beacon in Safari and Firefox

Permanent Link | Filed under: Stupid,Thoughts
25
Nov
2007

Since Facebook won’t provide you a way to opt-out of Beacon, their intrusive advertising platform, here’s how you can prevent them from harvesting data about you from other sites.

For Safari, first install the excellent PithHelmet plugin that lets you block sites, pages, cookies, and advertising with excellent granularity. It is not free, but well worth the $10. Go to PithHelmet preferences, right within Safari’s preference dialog.

pithhelmet-for-facebook-beacon-blocking.png

In the next step, you’ll need the following Matching Pattern. Here it is for copy/paste convenience:

pithhelmet-rule-editor-for-facebook-beacon-blocking.png

For Firefox, I refer you to Nate Weiner’s original post that inspired mine for Safari. He also has a detailed analysis of why Beacon is a privacy nightmare with no means for users to opt-out completely. The ‘No Thanks’ button only prevents the information from being displayed, but Facebook still logs and preserves it, and may do with it as they please (according to their terms of use).

How do I eat Pringles chips out of a can?

29
Oct
2007

I ask you, the blogosphere, to enlighten me on the best way to eat Pringles that does not involve a bowl. The Pringles can is one of the iconic designs of modern times — uniformly-shaped potato chips in a tube — that seems to value form over function.

Let’s admit: eating chips is a secondary task for most Americans. These are snacks people munch on when they’re doing other things. Thus, these chips should be easy to grab with one hand and have the other hand free for the television remote, steering wheel or keyboard/mouse. At the same time, it is important that chips don’t spill, or worse yet, crumble in your hand. So what’s the best way to eat them without needing a bowl? (because using a bowl would just be weaseling out of this problem into one already solved in The Textbook.)

The first few chips are easy. (Isn’t that the case with everything? :) ) They’re within the grasp of your fingers, so it’s no different than plucking a few chips from a bag. It’s after the top few disappear that the problem starts. Should I force my hand into the can? Should I invert the can so the chips fall out into my hand? Should I tilt the can ever so slightly and tap on the side to have the chips exit one by one instead of stampeding all over themselves?

I’ve tried to dig in with my hand to get to the next few, but my hand is too big to fit inside the can, and it’s probably not a good idea anyway. I shudder to think of the day I’m in an Emergency Room with a Pringles can wrapped around my wrist, with $200/hour doctors cutting off an embarrassing roll of cardboard from the one organ that distinguishes men from apes. No, excavating anything but the top few is a job for professional archaeologists.

I’ve tried inverting the can with the lid on, so (I hoped) the chips would all accumulate on the lid, and then I could simply open it up and eat a few. The problem is, the quantum stable state for potato chips is a pile of crumbs. Inverting the can gets all the crumbs to the bottom of the can, and when the lid is opened, that’s what comes out first.

I’ve tried tilting the can at a precise angle and knocking on the side until the top few chips make their way slowly out the door. This sometimes works, but takes a long time, and very skillful knocking/tapping/flicking to get the right number of chips out of the can. Often, you’ll spend five minutes tapping unsuccessfully, then, out of a burst of frustration, you’d tap just a little bit harder, and have Pringles rain upon you. No go.

Dear Mommy taught me to search the Web before posting random questions to total strangers, so I did my homework. Here’s an innovative method of eating Pringles, but I’m no chopsticks ninja. And eating chips with chopsticks vaguely reminds me of the Seinfeld episode with George eating Snickers with a knife. You get the point, sort of.

So my question to you is, what’s the best way you’ve found to eat Pringles out of a can without spilling any crumbs, using a minimum number of hands to do it? A second, deeper, question, from my obvious position as a design and HCI person is, why has such a design resisted change over so many years despite being so hard to eat from?

Next Page »

Bookmark and share using ...

Delicious Facebook Digg Google Friendfeed Stumbleupon Twitter Linked In