Confessions of a researchaholic

May 18, 2013

Manage research code

Filed under: Real — liyiwei @ 12:55 pm
Tags: ,

Svn is my choice for revision control. I usually use c++ to write the core components, and perl/php/csh scripts to run them. More information can be found under http://svn.liyiwei.org/public/, which contains public domain code of some of my projects.

Those are all relative toy cases.
Real deals can be found in good tech companies.

The best research software practice I have personally experienced is in the NVIDIA GPU architecture group. Strictly speaking, it is development, but there is plenty research involved due to its cutting edge nature. And it worked. Tens or even hundreds of engineers can collaborate on the c-models for multiple versions and generations of GPUs, each with staggering complexity. The products shipped and nobody lost their mind as far as I know.

PS I always believe the tremendous benefits of having at least a few years industry experience before joining the academia.

May 15, 2013

Manage research project via paper draft

Filed under: Real — liyiwei @ 4:04 pm
Tags: ,

I use svn paper drafts to manage my research projects including everything: writing, experiments, results, and communications. Other than external storage (e.g. Dropbox or Google site) for data that does not need fine-grained revision control, I never need anything else, like meetings or emails. So far, this mechanism has worked superbly well, for my team projects as well as single authored papers.

This is one of those things that are better experienced than told, but here is a brief description of what it is like.

First of all, you need to have some idea what a research paper is like. All you see are finished and polished products. However, few, if any, research paper is written in one pass. They all went through some iterative evolution process. And here is mine.

I usually start drafting up the abstract the moment I have the idea. Do not worry if it is immature. It should be, as otherwise the idea cannot be new. Just write it down. Do not worry about grammar or anything cosmetic. Just make sure you can understand yourself later.

Gradually add more materials to that paper draft, including everything you see in published papers like introduction, literature survey, algorithm descriptions, math equations, experimental results, as well as those you might not see, such as thoughts, discussions, failed experiments, and ideas for future works. I usually keep a main part that eventually becomes published papers, as well as a blog part keeping daily progress and discussions.

I use svn (Subversion) for revision control, and Latex for document source. I structure the files so that I can simultaneously compile multiple versions from the same set of source (with different flags), such as final.pdf for final submission and draft.pdf that contains everything, including discussions among co-authors.

Because I put everything in writing, I never need to be reminded what has been done, what is yet to be done, and who is doing what. I can concurrently manage a double digit number of projects without losing my marbles. I also can collaborate with anyone anywhere without any other forms of meetings, because all discussions can be conducted through the paper draft. For example, if I see a mistake in an equation, I correct it, and put a note nearby explaining what I have done and why. The other guy, who wakes up in another time zone 8 hours later, can see exactly what has happened. Even for my UI papers, one guy can record a short video (or better, the editing history) for another guy to replay.

It can probably help to provide some concrete examples here, but I have neither a suitable project repository that I feel comfortable sharing nor the time to construct a didactic case. Everything will naturally make sense when you start working with me.

May 3, 2013

CSIS3330

Filed under: Real — liyiwei @ 12:00 am
Tags: ,

Dear student:

I am totally cool with skipping all the classes as this is also what I did in school. But at least I never walk up to a professor in the final session and ask: “are you the TA of this class?”

(True event occurred in my mobile computing class today. All students have to show up for their final project demos.)

April 28, 2013

Data analysis applied to professional team sports

Filed under: Real — liyiwei @ 11:50 pm
Tags:

Tampa Bay Buccaneers (NFL). Oakland As (MLB). Golden State Warriors (NBA). And more.

I wonder if one day algorithms are going to instruct every player move.

http://www.youtube.com/watch?v=tuH36R_QZtQ

April 25, 2013

2014 student recruiting status

Filed under: Real — liyiwei @ 1:08 am
Tags:

[HKU has begun the recruiting season for 2014.
(No, there is no mistake. Most of our headcounts get filled early autumn the year before. If you are still looking for 2013 opening, you are a year late.)
I plan to keep my annual student recruiting status here to avoid repeating the same answer to all student inquiries. The status will change depending on how many headcounts I get and how many students I admit so far.]

If you have not done so, please read my advising site first. This can save you a lot of time and trouble.

Other things being equal, it is better for you to be my external advisee, or have me as your secondary adviser in HKU. You will get no less attention from me (the amount of time I spend on you is proportional to your performance, nothing else), and your graduation will not be contingent upon my (high) standard.

I should have some openings for 2014, even though I am not very keen to take new students for the following reasons:

. I have enough ongoing already. I like to spend enough time for every project to the point that I can know every detail, as well as to every student so that I can keep tab of their mental status at every heartbeat. I do not think it is very fun or responsible otherwise.

. I want to find time to do another single-authored paper. I seriously miss the fun.

However, I am willing to take you if you are so good that I will regret otherwise. It is up to you to convince me.

Assuming you can pass my initial reading, the best way for us to proceed is to work together a bit. This allows us a trial period to understand each other. Your time and effort will not be wasted. I can help you draft your research proposal or even try publishing a paper. You can use these to strengthen your application for all schools. If in the end you become good enough for Stanford, I will not even wince.

Have fun!

April 17, 2013

We are what we think we are

Filed under: Real — liyiwei @ 7:41 pm
Tags: , ,

I heard some recent conversations among faculties about why they should not take the very top students because they might go somewhere else in the end.

WTF

If even you do not think you are the best, how could you make others believe in you?

I think I am as good as anyone out there, so my strategy is very simple: take (as my internal students) only those who are so good that I will regret for not taking. If they deflect to other places in the end, fine, because I will likely at least keep some of them. And even in the worst case I get no students, I can just single author SIGGRAPH papers. (I seriously miss the fun.) Or spend some time away living in Nepal. All these beat wasting time on not-so-good people, or worse, thinking I am one of them.

Why you should not do incremental research

Filed under: Real — liyiwei @ 7:04 pm
Tags: ,

Because (borrowing a metaphor from finance) doing incremental research is like picking up nickels in front of a running steamroller.

The steamroller is driven by folks who have been publishing on a specific topic recently.

You see (incremental) opportunities to improve on their direction, like nickels on the floor.

And you feel like picking up those nickels. Why not? They are right over there.

However, the steamroller is also on its way to get to the nickels. (An obvious point, but people are surprisingly ignorant to it, especially when they are focusing on the nickels.)

So the questions you should ask are: are you fast enough to beat the steamroller to the nickels? (This depends on your competitive advantage.) And in case you just barely make it, are you tough enough to keep running in front of that steamroller at least for a while? (You have to do some tough comparisons with competing methods.)

Meanwhile, there are golden nuggets elsewhere. They are hidden and harder to find, but they are far from the steamroller and a whole bunch of other people trying to pick up nickels.

I will let you decide where you want to go. If you want to pick up nickels, fine, but I will just sit there watching you running in front of that steamroller. I prefer to be the first guy finding the golden nuggets, and when others notice me, I am already moving on to other places.

April 14, 2013

Creative collaboration

Filed under: Real — liyiwei @ 7:36 pm
Tags: ,

I found the TEDxBow talk by Lloyd Davis on “5 Open Secrets of Creative Collaboration” very interesting, in that it emphasized the importance of physical human connections (and trust) in fostering creative collaboration, which is entirely opposite to my methodology of minimizing physical human contacts.

The natural way to produce good ideas is to have a bunch of smart and creative people work together. This is the main (if not the only) reason for the success of top research institutions, as I have personally witnessed in Stanford and MSR.

The conventional method for collaboration is through physical proximity, implying that to work with top people you have to join them in a top institution.
I am not sure if this is the only or even the best way though. Personally I have not found physical proximity any better than remote collaboration; almost all my ideas were produced either entirely on my own or via collaborations with or inspirations from remote people. The current technology is already good enough for me to be (intellectually) connected to almost anyone I want. (People who shun technology are not likely to be very good anyway, at least in computer science.) Even serendipity, the main advantage of physical proximity, can be managed by remote collaboration; I actually found it more efficient to write down my ideas than rushing to tell people.

Another benefit for remote collaboration is that it provides more flexibility to fit people with different levels of intelligence and experience. Not everyone is smart enough to have productive face-to-face brainstorming, and when that happens, I usually find it a great waste of time. I would rather give them more time (and grace) to think through stuff remotely and communicate with me asynchronously.

But I do wonder if I can be more effective by mixing a bit physical collaboration with suitable folks. Will experiment and report.

April 10, 2013

Taking courses versus doing research

Filed under: Real — liyiwei @ 7:25 pm
Tags: ,

Students take courses in college, and do research in graduate school.

Taking courses and doing research share some common intellectual underpinnings. On the other hand, they are also very different. Different enough to make some college superstars completely fail in graduate schools.

When you take a course, everything is pre-designed and deterministic. You follow the instructions. And if you are smart and hardworking enough, you get good grades.

When you conduct a research project, very little is known a priori. The process is ambiguous and stochastic; your assumption may be wrong, your experiments may fail, sometimes you might not know what you are doing, and in the end your papers may get rejected. Being smart and hardworking can help. But if you have to follow clear instructions and you expect deterministic outcomes, you probably will not enjoy or be very good at research.

This is probably why, in my personal experience, the best research students might not have the best GPA, but they are usually creative, motivated, tough, and (most importantly) can get things done no matter what happens.
(Perfect GPA can be a reflection of conforming personality, which is not suitable for research. On the other hand, bad GPA is usually a reflection of intellectual or personality problems.)

The transition from undergrad to grad school is not always easy for everyone. My suggestion is to adopt the research mentality as early as possible. In particular, do not waste your time on courses; all you need is to pass the minimal requirements. If you have to, take courses that are research or project oriented. And start your research as early as possible, so that you will have more time to learn and adjust, and to accommodate all the potential failures and setbacks.

April 2, 2013

Ancestry

Filed under: Real — liyiwei @ 11:25 pm
Tags: , ,

According to my family history I am of northern Chinese descent. DNA analysis indicated that it might have to go a bit further north, across the Great Wall. Specifically, since my paternal haplogroup is C3*, it is closer to the Mongols than the Manchus (whose emperors carried C3c, a related but different thread). There is also a non-trivial chance that my Y-chromosome came from Genghis Khan, who has left a wide genetic footprint across the former Mongol empire.

To clarify, the paternal haplogroup only traces the Y-chromosome, not the entire ethnic composition. I am pretty sure it is not uncommon for northern Chinese to have some Mongolic blend.
Furthermore, my maternal haplogroup is D4e3 (likely coastal Chinese). So I am probably some combination of Mongolian and Han Chinese.

My grandfather once told me that our last name came from one of the seven warring states. Clearly, he thought we were (pure) Han Chinese. I am having fun imaging his reaction upon hearing his true ancestry.

I plan to use this to explain away my past and future behaviors.
:-D

Next Page »

Theme: Rubric. Get a free blog at WordPress.com