Manas Tungare

The query: Protocol

Update: I implemented this idea at https://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 https://, 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 https://google.com/search?q=h1n1+update or https://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.)

Read More

Grad School 101

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

</embed> </td>

Download PDF

</param></param></param></param></param></param></param></param></param></param></param></embed></param> </td> </tr> </table>

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

Read More

My custom LaTeX styles

By popular demand, my custom LaTeX styles are now available for download. (All of them have been dedicated to the public domain, I disclaim all copyright.)

There are four for now, but the set will grow. The first lets you use OpenType fonts (which is pretty much any system font); the limitation is that this works only with a single distribution, XeTeX, available only for Mac OS X, and a new experimental build for Linux. A second style typesets all chapter titles, sections, subsections and subsections in a sans-serif font (instead of the default serif). Very effective when used in conjunction with the OpenType style.

The final two adjust margins to require less paper for draft prints and such. Be good, be green.

Read More

One-button Phone Number Sharing

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!

Read More

My Research Philosophy

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.

Read More

« Newer Older »