Applying a U.S. Visia


This is the third time I apply for a U.S. Visa. As always, I need to fillin the lengthy application forms and hand in the money.

The interesting thing is, today, Oct 31, 2002, is the last day before the U.S. non-immigrant visa rises from $65 to $100. Many media has reported this raise in fee. You can read about it here and there. I am just wondering why the search result in Google News implies that Asia media are more interested in this event. You can see South Korea, Malaysia and India are the majority in the list for the first page.

I don’t care too much on the price upgrade. I followed the routine to complete form DS-156 Nonimmigrant Visa Application form and DS-157 Supplemental Nonimmigrant Visa Application. I found there is some slight change in the form from the form I got in early 2001. I looked carefully and found the two forms are tagged as 08-2001 and 01-2002 respectively. It seems true the procedure changed a little bit. Maybe it is part of the reasons why Malaysia’s Foreign Minister commented on the price change:

We have to accept the decision of the US government. They have increased their spending on surveillance and training their personnel for security purposes. Definitely it will involve a lot of money


Later, I realized the difference is caused by the replacement. I was fill form OF-156 one year before and now DS-156 completely replaced the old one. The changes are still kept minor so I can hardly feel the change.

Because of the “minor change”, I made a stupid mistake and I hope you will not. The original OF-156 form has both English and Native Language version (Chinese version for me) and the Chinese version is only for reference propose. For DS-156, the translation is removed and we need to fill in both the English and Chinese form. This caused my application rejected once and I need to complete the Chinese one and sent it in again..

I am going to send the application to U.S Embassy tomorrow and check how long it will take before I can get a B1 visa. According to this site, visa process may be delayed for some time after Sept 11.

Celebrating Holidays and Special Occasions on Websites

Celebrating Holidays and Special Occasions on Websites (Alertbox Oct. 2002)

Celebrating Holidays and Special Occasions on Websites


Even small holiday decorations can increase joy of use and make websites feel more current and more connected to users’ lives and physical environment. The key is to commemorate without detracting from your users’ main reasons for visiting the site.

I has been a reader of Jakob Nielsen‘s Alertbox for one years. There is always very good suggestions and guidelines from Jakob on usability. This issue is no exception. I am going to implement it on my own site to see how it works. Let me know your comment on how it works.

I’d like to recommend Jakob Nielsen’s Alertbox for everyone who owns a web site or who is responsible to deisng something – no matter it is software, architecture or others.

Update July 25, 2007

I reviewed the original alertbox article and my own comments on this (after 5 years), and the both Jakob (5 years ago) and I (who is 5 years younger than me) shows up before me vividly.

That is the good thing of blogging – it is just like a refrigerator – to keep your memory in a can and you are able to get back to it even after 5 or even longer period of time. I am so glad that I started blog 5 years ago…

What are the major holidays we want to celebrate in China (and internationally)? I would say:

  • Spring Festival

  • Christmas
  • My birthday (yes, a little bit personal cult)
  • Olympics
  • World cup
  • National holiday

I have ever put on snow on my homepage during Christmas, and that worked great.

Skiing in Shanghai

Skiing in Shanghai? Are you joking? But it is true. I am very excited to share my experience with one Indoor Skiing Site that just opened in Shanghai.

I am learning to ski. This is the first photo in my life in Skiing Shoes.

The overview of the skiing site.

This is how the snow was made. Three large pipe is blowing snow pieces to cover the surface of the ground.

The counter to get skiing shoes.

Tel: 8008207910 / +86-21-62727910 / +86-21-62727912

Address: #1835, Qi Xin Road., Minhang District

Update January 12, 2004

Current price (as of January 12, 2004): 125 RMB for unlimited skiing time. It is closed at 1:00 AM. Sounds good.

Add Unsubscribe Function to MovableType

Adding unsubscription function into MovableType has been a very hot topic in MovableType Support Forum (refer to this post and that one.

Tonight, I spent some time to think about it and changed the code a little bit to support unsubscription function.


my $note = MT::Notification->new;

$note->blog_id( $q->param('blog_id') );

$note->email( $q->param('email') );

$note->url( $q->param('url') );


As you can see, I added a line into the code – as shown in red. I am using the existing URL field to add a tag of unsubscription. By utilizing existing fields, we reduce the code changes.

Result for subscription

By default, MovableType does not offer the subscription success confirmation page. It redirect users to the home page of the weblog by default. It is very confusing since subscribers don’t know what happened. We need to create one by yourself and change the _redirect input field of the subscription page. Refer to MovableType’s help for suggestions on adding “subscribe” function to your page.

<form method="post" action="">

<p>Enter your email address in the textbox below and click Subscribe</p>

<input type="hidden" name="blog_id" value="1">

<input type="hidden" name="_redirect" value="">

<input name="email" size="56" value="Enter your email"><br>

<input type="submit" value="Subscribe"> </p>



<form method="post" action="">

<p>Please enter your email address in the box below</p>

<input type="hidden" name="blog_id" value="1">

<input type="hidden" name="_redirect" value="">

<input name="email" size="56" value="Enter your email"><br>

<input type="hidden" name="url"

value="unsubscribe" / >

<input type="submit" value="Unsubscribe"> </p>


I added a hidden field called URL with value of unsubscribe. Thus you can see the who is willing to unsubscribe from the notification list and do it manually when you notice it.

Want to have a try?

Please check the homepage of my weblog. The notification subscription area is at the right-top corner. You can also directly visit the subscription page.

Next step

It is ideal if we can add code for removing the Email from $note database directly in MT-add-notify.cgi. I don’t have time to do it now, but it should be very easy. Please let me know if you have done so.

Willing to Pay the Price from Chicken Soup

It is an old story – Willing to pay the price from the famous book Chicken Soup.

The part how Le and his wife spent money inspired me a lot. Here is the original story.

Even with a weekly income of $300, they decided to continue to live in the back room. They kept clean by taking sponge baths for two years in the mall’s restrooms. For two years their diet consisted almost entirely of bakery goods. Each year, for two years, they lived on a total, that’s right, a total of $600, saving $30,000 for the down payment.

Le later explained his reasoning, “If we got ourselves an apartment, which we could afford on $300 per week, we’d have to pay the rent. Then, of course, we’d have to buy furniture. Then we’d have to have transportation to and from work, so that meant we’d have to buy a car. Then we’d have to buy gasoline for the car as well as insurance. Then we’d probably want to go places in the car, so that meant we’d need to buy clothes and toiletries. So I knew that if we got that apartment, we’d never get our $30,000 together.”

Learning Swimming

I went to swimming today and learnt some basic breaststroke skills.

Swimming is another exciting sport in life. I feel guilty that I cannot swim for 25 years. Recently, I went to Sports Hotel – the hotel near the conjuction of Nandan Road and Cao Xi Road North to learn swim every Saturday and it is especially interesting for me as a beginner.

Before today, I cannot breath when I swim. I can manage to swim to about 15 meters with one single breath, but cannot reach further. The breakthrough I got today is, I begin to be able to breath. According to Red Cross’ seven level of swimming, I am almost in level 3 now.

I found this article on breaststorke very useful for me. It may be useful for other who can or cannot swim.

I remember the old poem on progress again:

Computer files are always incompatible

If it worked yesterday, it won’t work today

— That’s progress.

Today I will say: “I cannot swim yersterday, I can today – that’s progress

A nice day, isn’t it?

Me, As a Trainer


If anything can go wrong it will

Equipment knows when you’re nervous

No two plugs are compatible

Slides are always upside down

Computer files are always incompatible

If it worked yesterday, it won’t work today

– that’s progress.”

Ian Hart, University of Hong Kong, via Glitch Management for Internet Instruction

You will feel it very interesting and real if you have delivered some training.

Me, as a trainer

I am marching on my path to a professional trainer. Sometimes I am very puzzled about what are my key competencies. After sometime, I realized training and presentation skills may be the one that counts.

I started in Dalian

The first official training I delivered within Microsoft was held in June, 2000 in Dalian. It was on BizTalk Server, the very new product to everyone, even within Microsoft. The training was thought highly by participants and this kicked off my training experiences.

More presentations

Later, with the launch of BizTalk, as the only one who had delivered most BizTalk sessions, I presented BizTalk Server in lots of events, such as Web Interactive Conference - I presented 40% of the sessions for the series of talks, covering topics on UDDI, Next Generation Internet, .NET, BizTalk, and How to Improve Performance of web site.

Later, I got the opportunity to introduce BizTalk Server in China CIO/CTO Summit in Beijing and Shanghai. It was a tough session since the time was deduced from one hour to 15 minutes for me due to emergencies. I finished the job successfully. It was very cool, I believe. It was on that meeting I know a lot of CIO/CTO of most famous .COM company at that time (Sina, Netease, 3721, Sohu…) I love this experience very much.

Wow! Famous DevDays and TechEd!

Very soon, I spoke at two largest technical events from Microsoft – Developer Days 2000 and TechEd 2000. It is interesting that all the presentations concentrated in Nov, 2000. For TechEd 2000, it was held in three different cities. It was in that month I created my record of fly 8 times in two weeks. I counted that I altogether presented more than 15 sessions that month.

Keynote speech demo of Microsoft .NET Launch

The most exciting presentation I delivered was also in November 2000. I joined with Dr. Jun Tang, now the Present of Microsoft (China), to present the key note for Microsoft .NET Launch. It was a grand launch and the keynote speech was the first session. More than 1500 people and about 300 medias attended the keynote speech. My part was a BizTalk demo of about 20 minutes. I’d like to thank Jun for giving me the opportunity to work with him and the trust he gave me. You know, I was under very high pressure since the demo cannot fail. This also marked my record of most audience – 1800+ in a single room.

Meeting the giants of the industry

Based on the training experience, I got more and more opportunities to meet with our partners in the industry. I started with .NET training for enterprises from South East Asia. I still clearly remember how embarrassed I was when half of the audience kept shaking their heads during my presentation. “What is wrong with my presentation? Is there any thing wrong with my English?” I checked again and again, until finally I realized they came from India. They were expressing “Yes” by shaking heads – it was the difference in culture.

The same culture shock continued when I was invited to attend an Intel Company Meeting of Asia Pacific. The audience came from all countries in AP area. People are using English with different accent to ask questions. It was really interesting. I was also very honored to attend Siemens Global IT Managers Summit. “Siemens means quality and Microsoft means innovation” – Dr. Tang said during the summit. I still remember that and think it was just to the point.

Transition from presentation to training

After delivering more than 50 presentations with an average of 150 audiences each, I got a little bit tired for presenting to too many people. I double how much they can learn via this kind of lecture. I also doubt the technical depth I can reach via this kind of “What’s New” or “overview” At that time, I took the responsibility of Software Park project. It is all about bringing software development process and practices of Microsoft to software companies in China. It is much meaningful and I felt the power to influence a company and contribute to the country in much large scope. I researched and prepared a training course called Microsoft Development Management Training with my colleagues. We presented the session for 12-30 people at a time and started our road show in different cities – Shanghai, Guangzhou, Changsha, Wuhan, Nanjing, Suzhou and Chengdu…. I will continue to bring the session to more cities and to more companies.

At that time, I attended a very good training delivered by PAAP. It is called Developing Effective Trainer Skills. The trainer Richard Ong did wonderful job to deliver the training and I learnt a lot. After that, I decided to develop more trainer skills and go further in the path of professional trainer.

Helping others on training skills

Now, I am playing more important role in the company for improving the organization’s trainer skills. From yesterday, I presented the forth Train the Trainer Training (TTT) named Creating Effective Workshop in the company. I love to see how the ideas of Experiential Learning and Handling Tough Situations bring a difference to everyone’s training and improve the training quality in an organization.

Nothing is perfect

There was an emergency during the after session of my training. Due to system replication error, the record of the room I booked got lost and caused conflict. I have to pause the training and wait for the future. That is the reason I posted the poem at the beginning of this blog – it always remind me, there is always emergencies in the training and there is always some thing to improve.