Confessions of a researchaholic

2013-07-17

Advices on advising

Filed under: Real — liyiwei @ 5:51 pm
Tags: ,

I stumbled upon these advices on advising by David Patterson (here) and Jeff Ullman (here) today. I found both insanely useful, especially after having a few years of advising experiences. The advices differ in the way that Patterson is mainly on systems and Ullman mainly on theory. But they also share similarities such as the importance of identifying problems and collaborative work.
(I would really love to hear from someone in graphics and HCI, fields with more emphasis on human side applications. I am thinking about asking my former school advisers/professors to write such articles.)

I reflected upon my (unusual) style of individual work and asynchronous communication. This has been quite effective so far, but I never stop thinking it could go wrong, at least for some students. So what I did is to make sure there is always at least one co-adviser who can help with the normal human side of needs, like in person meetings and emotional support.
Exposure to industry labs or even startups, fortunately, should be the benefit of working with me, given where I came from and whom I know.

I encourage all my past, current, and future students to read these articles, and let me know if you have any comments.

2013-07-10

Picking up HCI

Filed under: Real — liyiwei @ 3:37 pm
Tags:

I am picking up HCI as it is becoming more relevant to my teaching and research. Here is a log of what I have found useful. As work in progress things are going to be in a flux. If you have suggestions I would love to hear.

PS: Back in grad school my PhD adviser once commented that UI design is my Achilles heel. 🙂

Books


The design of everyday things by Donald Norman is an old text but has aged quite well. The thing I like most about the book is that it provides many highly intuitive examples and counter examples to illustrate many of the practical design issues.


I learned about user studies from measuring the user experience by Tullis and Albert. It is pretty comprehensive, but for detailed math/theory you will need to look up elsewhere.

Courses

The coursera course by Scott Klemmer covers several main aspects of HCI and is fun to participate. I quickly went through it off season within a few days so I just watched the videos and did the quizzes. I plan to join the next offering and do the homework assignments (for real).

2013-07-05

SVN post commit email notification

Filed under: Real — liyiwei @ 1:33 pm
Tags: ,

To some of my collaborators who have recent troubles with svn auto notification:

Instead of the usual spam run on my svn mail server, this time the issue seemed to come from over-zealous spam filtering. That is beyond my control, so I did a workaround.
(See below for more details if interested.)
The only difference is that you will see only yourself as the email recipient instead of everyone else on the cc list.
But this is probably a good thing as it can discourage the temptation to reply all through email.

Let me know if you still see issues.

Setup guide

Here is a quick guide on setup for linux. I will let you search online for other systems and more details.

. Under the “hooks” directory of your repository, there should already be a file named “post-commit.tmpl”. Copy it to a file named “post-commit”, and set x permission for ug. As the name implies, this is the file that will be automatically evoked after commit.

. There should already be a line similar to the following at the end of that post-commit file. All you need to do is to set the proper directory for commit-email.pl and append proper email list.

/usr/share/subversion/hook-scripts/commit-email.pl “$REPOS” “$REV” -s “Project Name” person1@foo.bar person2@foo.bar

. Alternatively, you can also use mailer.py in lieu of commit-email.pl. The former will give you more options while the latter is simpler. For mailer.py, use the following line instead of the commit-emai.pl line above:

/usr/share/subversion/hook-scripts/mailer/mailer.py commit “$REPOS” “$REV” “$REPOS”/hooks/mailer.conf

You also need to put a mailer.conf file under the same directory.
Below is a simple basic setup that works well for me.

[general]

# This command will be invoked with destination addresses on the command
# line, and the message piped into it.
mail_command = /usr/sbin/sendmail

[defaults]

# This is not passed to the shell, so do not use shell metacharacters.
# The command is split around whitespace, so if you want to include
# whitespace in the command, then ### something ###.
diff = /usr/bin/diff -u -L %(label_from)s -L %(label_to)s %(from)s %(to)s

# The default prefix for the Subject: header for commits.
commit_subject_prefix = Project Name

# The default To: addresses for message. One or more addresses,
# separated by whitespace (no commas).
# NOTE: If you want to use a different character for separating the
# addresses put it in front of the addresses included in square
# brackets ‘[ ]’.
to_addr = person1@foo.bar person2@foo.bar

# If this is set, then a Reply-To: will be inserted into the message.
reply_to = noreply@foo.bar

# Specify which types of repository changes mailer.py will create
# diffs for. Valid options are any combination of
# ‘add copy modify delete’, or ‘none’ to never create diffs.
# add: generates diffs for all added paths
# copy: generates diffs for all copied paths
# which were not changed after copying
# modify: generates diffs for all modified paths, including paths that were
# copied and modified afterwards (within the same commit)
# delete: generates diffs for all removed paths
generate_diffs = add copy modify

# A revision is reported on if any of its changed paths match the
# for_paths option. If only some of the changed paths of a revision
# match, this variable controls the behaviour for the non-matching
# paths. Possible values are:
#
# yes: (Default) Show in both summary and diffs.
# summary: Show the changed paths in the summary, but omit the diffs.
# no: Show nothing more than a note saying “and changes in other areas”
#
show_nonmatching_paths = yes

My workaround

The mail filter appeared to be rejecting and considering as spam some automatic notifications with multiple recipients. So a quick workaround is to send out emails once at a time to individual recipients. This can be easily achieved via commit-email.pl as follows:

for person in person1@foo.bar person2@foo.bar
do
/usr/share/subversion/hook-scripts/commit-email.pl “$REPOS” “$REV” -s “Project Name” $person
done

For mailer.py, you will need separate conf files for individual recipients. This does not look very convenient to me.

2013-06-13

How to fail your graduate study like an undergrad

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

You think GPA is important and spend time boosting your grades.

You think research is as deterministic and well-defined as courses.

You wait to be told what to do rather than figure out your own way.

You think you are working for your adviser rather than yourself.

Instead of work continuously, you let external factors (e.g. holiday and semester breaks) disrupt your flow.

You do not read every paper in the top venues of your fields especially during your first few years.

You try to read and understand every paper completely like textbooks.

You feel that deadline 3 months later is still far away.

You believe you are smart enough so that you do not have to work as hard as others.

2013-06-02

How to do a paper fast-forward

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

Giving a good paper presentation is already hard, but at least you have 20 minutes’ worth of wiggle room. Giving a good paper fast-forward is even harder, because you have only 40 seconds. Even one tiny mistake can ruin you.

Goal

The most common mistake is trying to explain too much (I like to call it “geek’s asymmetry”). Trust me; almost nobody will care, and certainly nobody will understand, within 40 seconds and among 100+ presentations.

The fast-forward is pure advertisement with one main goal: get people read your paper and attend your talk.
On top of that, if you are really good, show what a cool and interesting guy you are. But do not even try unless you are absolute sure. (A good rule of thumb is this: are you already cool and interesting?)

Design

Write down the script first, so that you know what you want to talk about and you can comfortably utter the sentences within the limited time frame. Practice and rehearse a sufficient number of times, especially if you lack verbal proficiency. Only design your slides after the script is in a stable condition. This is extremely important. If you do it the other way around, and I know this is what most people would do, you are making a grave mistake, because (just like what movie critics would say) you are letting the effects get in the way of the substance.

Do not force people read your slides. Use pictures and animations instead of texts to explain your points.

Practice

After having both the script and the slides, practice, until you can do it perfectly during sleep.

2013-05-25

Ideas are not like cakes

Filed under: Real — liyiwei @ 5:21 pm
Tags: , ,

I used to dish out ideas like cakes to those who are good all-around but just cannot figure out what they want to do. Recently, I realized this is a mistake.

Ideas are not like cakes that can just be given out. Rather, they are more like dresses that better be tailored individually.

This applies to all kinds of people.

Those who can already create ideas do not need to be told what to do anyway. They just need guidance. This is the best case scenario.

Some have potential to create ideas but cannot do right now due to lack of proper training or motivation. The goal is to kindle their autonomy. Giving cakes is not going to achieve this, and these might not be what they like to eat anyway. The right thing to do is forcing them to think. The process could be frustrating sometimes, but worth the end result.

Those who lack fundamental abilities to create ideas are not suitable for research anyway. Giving them ideas just wastes everyone’s time (and the ideas). They should switch to alternative career paths as early as possible.

A proper timing to share ideas is after someone already figures out a related direction.

2013-05-22

Autonomy

Filed under: Real — liyiwei @ 9:51 am
Tags: , , ,

I bumped into this interesting and concise article a few days ago. I encourage you to read it in whole and watch the embedded video.

Basically, it echoes my personal experiences quite well, across product groups, industry labs, and academia. For jobs that require any dose of innovation, the success predominantly depends on individual creativity, perseverance, and autonomy, rather than knowledge, smartness, or even intelligence.

I have a very simple rule of thumb to know, at an early stage, whether a student is suitable for research, or any form of innovative work. It is a bit like push and pull. If I push you a bit (e.g. suggesting you to try an experiment) and you can react back with at least something I did not know a priori (e.g. a surprising result or a better way to do that experiment), you are probably good. Otherwise, you are just a robot that needs to be told exactly what to do. It is a bit better, but not fundamentally different from, say, strawberry pickers or assembly line workers.

Autonomy is the main distinction between jobs in the past 2 millenniums (e.g. agriculture, manufacturing) and this new millennium (the so called knowledge economy). It is also the main reason behind the bifurcation of economic power, social class, and a lot of other things.

On a related note, a recent story deeply touched my heart. A previous unknown, 50+ years old mathematician, with stints in fast food restaurants, recently proved an elusive property of prime numbers that has been one of the longest standing math challenges.
I did not know this guy, but I bet he must have a tremendous amount of passion and perseverance to spend all the time and efforts to pull this off.

2013-05-21

Lvdi Wang visiting HK

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

[People usually send out email announcements for visitors. But I find it very boring. So I am going to take a different approach that is more interesting and fits my style better.]

Lvdi Wang, a MSR Asia researcher in computer graphics, is visiting Hong Kong from June 8 to June 12, 2013. If you are a faculty or student who would like to meet with him, let me know.

Here are some reasons why it is to your benefit to meet him, especially if you are a student, and more so if you are a student working with me now.

Lvdi is a very smart guy. In fact, he is one of the smartest students I have ever worked with. You can benefit a lot from discussing with him about your research.

He is also a very nice guy, nicer than the usual kind of smart guys who could make you a bit uncomfortable.

[Look at his publications and photos under his website for the two points above.]

He is not my longest collaborator, but likely knows my style well enough to give some *happiness* guide, especially to my internal students. (I am not saying anyone should have any grievance given my liberal style; how many professors out there allow their students to work anytime anywhere? But just in case.)

You might want to ask him about “nothing is impossible”. I am going to quote from his case if you ever tell me “it is not possible to accomplish that”.
😀

2013-05-18

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.

« Previous Page — Next Page »

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