Confessions of a researchaholic

2011-11-30

Breaking point

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

Have you ever tried so hard to accomplish something that you feel that you are going to break anytime soon?

If not, you are unlikely to be truly successful for anything. The world is a very competitive place, and there are always people who are more talented and harder-working than you. So ask yourself why you deserve to win if you have not given everything you have.

Plus, the *breaking point* is one of the most wonderful life experiences. I and my collaborators have to go through that every year. I am not sure about them, but I truly, absolutely, enjoy the process.

Give it a try. Find something that is really hard and you really want to accomplish, and go for it. You will not regret.

2011-11-26

Emotion

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

It is pointless to rationalize with people who are trapped in emotions, which, unfortunately, happen all too frequently. Emotion is an evolutionary artifact that would take long for (natural) evolution to fix. Meanwhile, we can only hope for better self-control.

2011-11-25

Voluntary genocide

Filed under: Real — liyiwei @ 11:54 am
Tags:

During thanksgiving the subject of turkey was brought up, which lead to the subject about genocide of American Indians. This reminded me of an Economist article I read earlier, about the extinction of Manchu. And that lead to my thoughts about *voluntary genocide*.

To commit voluntary genocide, all one country/race needs to do is to be (1) audacious enough to invade China, (2) good enough to win the war, and (3) stubborn enough to stay for a sufficiently long period of time. After that, the invading race will be absorbed by the Chinese.

The Japanese were least successful (and most lucky) to reach only stage 1, thus they are still a country. I am not sure exactly what they were thinking before the war, but mathematically, even if they had stationed every Japanese man in China there simply were not enough of them to be in control.

The Mongols were slightly more successful (and less lucky) to reach stage 2; they would have been a Chinese province if the Russians hadn’t intervened.

The Manchus were the most successful (and the least lucky) to reach stage 3. So within just one century after ruling the world’s largest empire, they are now on the brink of extinction.

Probably only the (Asian) Indians have sufficiently large population and strong enough culture to get to China without being completely absorbed. The geography (Himalaya) has prevented any large scale war between these 2 countries throughout the human history. The technology might have finally made this feasible now, though. My calculation is that if China were to engage in any future war with a neighboring country, India would be the most likely one. And I would be curious to see how they will fare.

“Next to knowing when to seize an opportunity, the most important thing in life is to know when to forego an advantage.” – Benjamin Disraeli

2011-11-24

How to learn a new language

Filed under: Real — liyiwei @ 1:01 pm
Tags:

Disclaimer: This is based on my personal experience. You might find it eccentric, or even bizarre. It worked for me, but I am not sure if it suitable for everyone. So follow my advice at your own risk.

I have not found formal school education any useful for learning a foreign language. I learned English by reading novels and watching movies (mostly Hollywood) while having fun. I believe truly enjoying an activity is the most effective way to excel at it. The formal school education, at least in my personal experience, provides the exact opposite. It is usually dry, boring, exam based, and removed from practical usage.

The most important usages of any language are listening, speaking, reading, and writing. Whether or not you actually understand the underlying grammar or other theoretical aspects is only secondary. Most native speakers do not think about grammars or theories when using their own languages.

If possible, immerse yourself in an environment that will force you to use a particular language. I essentially picked up English speaking and listening while in grad school because otherwise I cannot survive. I heard a theory that the most effective method to learn a foreign language is to date a native speaker who is so deficient in other languages that you have to speak that particular language with him/her. I have no chance to actually try this but I believe it will work.

Falling short of dating a native speaker or trying to survive in a foreign country, you can still practice reading novels written in the target language (pick up something fun and well written, e.g. Harry Potter for English), watching foreign movies without any caption (again, pick up something you would like), and writing blogs (e.g. your opinions about a recent book you read or a movie you watched). With enough practice, you should be able to pick up any new language without going through any formal schooling or textbooks.

2011-11-20

Rejection

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

Let me begin by outlining a few basic laws of nature.

Scarcity
Resources are scarce, with scarcity proportional to relative supply and demand.

Ego
People tend to consider themselves better than they really are (and thus deserve better than what they currently have).

Randomness
The universe is stochastic, and unfortunately people like to imagine life is more deterministic than it really is. (Heck, even Einstein refused to believe God will throw dice.)

As a consequence, when people cannot get what they want, they complain about injustice, and question the fairness of the process that allocates the scarce resources.

Unfortunately, none of these will not help or change anything. People will just think you are a whiner. And do not even attempt to ask why you did not get what you want; you are forcing people to either tell you a white lie (e.g. you are really good; it is just that we cannot figure out a good task for you to do right now) or be impolite (e.g. dude, you really have no idea how lousy your performance was?) or to confess they really have no clue (e.g. huh, we cannot really decide between you and another candidate, so we picked the taller one).

Specifically, under a lot of situations, the decision depends on a lot of factors. For example, there is this famous thing called *affirmative action* in the US that discourages discrimination in job and school opportunities. The intention is all good, until people start to enforce hard quotas, like reserving a certain percentage of openings to a certain group of (alleged) minority. Then, if the real application pool does not contain that percentage of qualified minorities, the process will deem to hire a minority with inferior ability than certain more qualified majority. You can say it is not fair, but that is how things work.
Sometimes it can just be random; with hundreds or even thousands of applications for a certain opening, it is just information overload to for anyone to decide who is really good.

My personal suggestion is to stop worrying all of these, and use the rejection or denial as a source of motivation. Prove to the world that they are wrong, and you are the best.
Getting dumped by your ex? Shine yourself to make him/her regret next time you meet.
Getting rejected by a job application? Outperform whoever got hired instead of you.
Did not get permission to your dream school or professor? Publish better research papers than his/her group.

These being said, I really want to tell whoever applied to be my student: thank you all very much, but since I have received hundreds of applications and I can take probably only 2 (or maybe one more if I can muscle with the department), mathematically it is impossible for me to take everyone I like. Evaluating the quality of a student is more art than science, so I rely mostly on my intuition. If you really want to force an answer out of me, the only thing I can say is that my intuition told me that there are better and more suitable candidates than you. But can I prove it? Heck no, and I doubt if anyone can.

Ray tracing

Filed under: Real — liyiwei @ 6:43 pm
Tags: ,

Many mentors have their own favorite entry level project for both training and sieving purposes. And mine is ray tracing.

Read + code

Read the following books and implement your own ray tracer from scratch.
Yes, I mean writing every single line of the code yourself, except for standard libraries like iostream and cmath. And yes, I recommend c++ as the programming language.

Ray tracing in one weekend, by Peter Shirley.
Path tracing with soft phenomena. Very short and cute introduction to ray tracing in particular and computer graphics in general. Full of hidden gems and wisdom, but beginners might not appreciate all the nuances.

An introduction to ray tracing, by Eric Haines, Pat Hanrahan, Rob Cook, Jim Arvo, David Kirk, Paul Heckbert, and (edited by) Andrew Glassner.
Whitted-style ray tracing with hard phenomena. More comprehensive than the book above.

You should read the books (especially the first one) on a computer and code along. Do not just read; it is less fun and less effective.
Software engineer your code from the very beginning; ray tracing is nicely object oriented with natural object-like components such as rays, shapes, materials, colors, motions, and cameras.

Demo

Produce your own ray traced images. Start with something simple, like mirrors and glasses for basic reflections and refractions. Ultimately, I want to see 2 things:

  • Produce ray traced animations from the BART benchmark. (If you can reach this stage, I consider your training complete. If you cannot even get to this point for whatever reason, you have no chance to survive in our future projects.)
  • Design your own favorite scene, and ray trace it. Show me your creativity and artistic + scientific blend. You can find examples from prior Stanford cs348b rendering competitions.
    (This part can be good for a group project, even though I expect everyone to complete everything else individually.)

Why

I did ray tracing as part of Stanford CS348b image synthesis, and I would say this is perhaps the class that I have learned the most from.
First, ray tracing is a superb training for coding and software engineering; it is inherently modular and suitable for object oriented programming, and the amount of coding is non-trivial (actually, quite hefty for new-comers, especially if you code from scratch).
Second, ray tracing is a superb introduction to image formation, and you will learn the fundamentals of physics, computer graphics, computer vision, and image processing.
Third, and perhaps most importantly, it is heck of fun. It is beyond words for me to describe the satisfaction I (and many people I heard from) derived from producing my first ray traced image. I am not an artist, but I can paint with algorithms.

P.S.

There is another excellent book for ray tracing: Physically based rendering, by Matt Pharr and Greg Humphreys, but I personal opinion is that you should read it as your second, not first, ray tracing book.

2011-10-12

Why I do not stay up late for work

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

Once, while in grad school, I tried to wrap up a long SIGGRAPH crunching day by cleaning up my code.

So, I did the following in the Makefile:

clean:
rm -r -f *.c

Instead of

clean:
rm -r -f *.o

After that wonderful experience, I decided not to stay up late for work anymore. 🙂

2011-09-30

Last official day with Microsoft

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

I have a tremendous 6-year with MSR. I would like to thank all my friends who helped me become a better person. Fortunately, we can continue our friendships due to the nature of my next job. In fact, I can finally work with anybody without any legal restrictions.

MSR is a great place to be, and I would recommend it to anyone interested in computer science research.

I also have a tremendous job hunting process in the past several months. I interviewed with a variety of sectors (technology, finance, research, and education) over different continents. I would like to thank everyone who helped me during this process. For those of you who kindly gave me job offers that I could not take, I would hope to collaborate in alternative fashions. For those of you who turned me down, I would like to thank you for helping me fulfill my destiny.

2011-09-21

Why software is eating the world

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

I highly recommend this article from Marc Andreessen, especially for computer science folks.

To be fair, I think he is a bit too optimistic (as an entrepreneur he should be), but he still made plenty good points.

This is not exactly a new article, but I just realized that a lot of people haven’t read it yet, thus the sharing.

« Previous Page — Next Page »

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