Sunday, February 28, 2010
CMPT414 Couse project proposal
We will mainly focus on the implementation of the algorithm and leave out the UI part. Matlab will be our main programming tool.
MNIST database (http://yann.lecun.com/exdb/mnist/index.html ) will be used as the benchmark for this project. The MNIST database of handwritten digits consists of a training set of 60,000 examples, and a test set of 10,000 examples. It has been widely used in lots of projects or research works. Dr. Yann LeCun (http://yann.lecun.com/) has implemented a neural network which achieves 99.18% accuracy (i.e., an error rate of only 0.82%). This error rate served as a type of "benchmark" for many others’ research works and could be the goal of our project as well, which might be challenging. The data files of this database are not in any standard image format. We will have to write our own program to read them.
Mike O'Neill has implemented a complete project for Handwritten Digits Recognition, with demonstration graphic UI. He has released the details of his design in the article of Neural Network for Recognition of Handwritten Digits. Mike built Five-layer Convolutional Neural Network and applied Second Order Methods in back propagation to optimize the performance. Mike’s digit recognition project achieves 99.26% accuracy on MNIST dataset. We will follow his design and implement the essential algorithm.
I think the idea and design is pretty cool. I will be very happy if we can achieve above 99% accuracy!
Tuesday, February 16, 2010
Shen Xue&Zhao Hongbo, elusive pairs gold, touching moment!
Well, the most fun part was when we were watching pair figure skating final game after the dinner. There were three chinese teams and Shen, Xue and Zhao, Hongbo obviously received most of the attentions. Both of them were above 35. They have been skating for decades and have always been partners. They actually got married a couple of years ago. They have won many golds in various games, but never in Olympic. It is all the athletes' dream to step onto the podium of Olympic gold medal. That is why this couple came to this Winner Olympic game.
So when it was announced that their final score was 216.57 points and the rank 1 was CHINA, I saw this couple crying, screaming and hugging each other. I saw their excitement and happiness flowing from their faces.Zhao Hongbo started talking in Chinese, to Shen Xue also to himself, "I can't believe it... it is like a dream..." This is such a touching moment.
I like watching games such as figure skating, because it is not as hostile. The athletes are performing. They are trying to show their best to the world, to demonstrate the beauty.Not like other kinds of sports, where it is more like fighting with each other.
And I enjoy the most at the ending part of the game, when the winning athletes shows their emotions. Always touching moment to watch.
Anyways, I'm so happy for this couple and for China!
Go China Go!
Saturday, February 13, 2010
My Olympic Break Starts with Awsome Vancouver Art Gallary Visit~
Many of my chinese went back to China and celebrate Chinese new year with family.. I feel jealous....
But anyways, yesterday after class, I went to downtown with my friend and we visited Vancouver Art Gallery, next to Robson Square. The Olympic British Columbia Pavilion was just open. And it is free for visitors to access.
There were a long line-up when we got there. But the line moves pretty fast and has very good order. Meanwhile, there were volunteers lead the visitor along the line and talked friendly. I saw so many Canadian flags flying all around, on bags, cloths,faces... Patriotism is always the theme for this kind of event...
In no more than 10 minutes, I entered the gallery. There are four floors, but only the forth one allows photography. And actually, the floor one is the most interesting one. They have a number of interactive displays highlighting the rich cultural fabric of both British Columbia and Canada. Lots of fun... The 1st, 2nd and 3rd floors are mostly about the history, culture and nature of BC, along with some art works from artists.
It was very impressing and the best of all, it is free to access. Yay~
I feel lucky now that I chose to stay in Vancouver during the Olympic break. So many things go on all around Vancouver. I can pretty much go downtown and check out events everyday...
I'm looking forward to the coming-up events. Not worry about assignment for now... :p
Monday, February 8, 2010
Offer received!
The following phone call was basically about the offer package. I think I'm quite happy about what they are offering. However, I still didn't accept the offer right away. Instead, I talked to my parents and a couple of my friends. I guess I wasn't quite sure about whether to work at States or not. But since I'm young, everybody is encouraging me to try it out. And of course, this is MS, really hard to reject.The recruiter was very nice that he sent an email to the project manager, the project that I was interviewed for, and ask him to connect with me and help me to make the decision if I have any. This kind of touches me. I emailed both of them back and accepted the offer.
It has been almost one week.My state is migrating from exciting to more like "OMG, I am going to step out of school". Am I ready yet? Will I miss school? Would I enjoy living in Seattle? Well, these are supposed to be questions before applying the position, which I start to concern about now.
No matter what, this is a step which will eventually happen. Start of another phase of my life.
Friday, January 29, 2010
Done with MS interview and Finger crossed!
I just finished my whole day interview in Microsoft campus and am currenting this post in their recruiting building's lobby.... I'm feeling exhausted now....I have never had such a intensive day before...
As my recruiter left early for his wife today, I don't really get a chance to recap my interviews with him today. So I guess I will do my recap here by myself :P
Hm... Overall, I think I did well. The first two interviews were especially good. I was able to solve the problem in time and show my coding ability. I had good discussion with the interviewers as well.
However, later of the day, after lunch, I got tired... after 3 - 4 hours talking and thinking... So I felt my energy level went down. So for the following two interview questions, I screwed up a little bit. I was trying to solve the problem really quick and start writing the code once I had some idea of how to do things, which was totally a mistake :(
Near the end, I was taken to the last interviewer. She was the very very nice. After solving another coding problem, we started to chat. She told me that the hiring standard for fulltime and intern is different. She also said, I should have applied for an intern if I'm not going to graduate in the august. She also mentioned another chinese girl working in her team was in the selection boundary, but now she is very good worker. I think what she meant is I'm in the edge of being hired or not hired as well, and if I was applying for intern, it would be much easier for her to say "hire"...
Well...now, I'm done with the interview, and all I can do is to enjoy the rest of the trip in Seattle and finger-crossing for myself...
O, also, tons of homework to catch up once I get back to Vancouver, including the final paper for assignment1 of CMPT376 :(
Monday, January 25, 2010
Bad design of scanner (My ENSC304 Assignment1)
1. The Problem
There was a time when I volunteered in a conference and my job was to use a little scanner to scan the bar code of the attendees’ tags. The scanner is a very small device, approximately 3cm*5cm. The interface of the scanner is very simple: the front side has a light indicator and one big blue button, and the back side has one small button with the same blue color.
When I first received the scanner, I figured out very quickly that to scan the bar code I need to hold the big button while the laser light going through the bar and also that the light indicator would flash if it succeeds. However, the problem comes with the small button on the back.
As no label on the back, without instruction I had no idea what this button is for. Later I was told that the small button is for deleting data. If that button is pressed, all the previous scanned data will be deleted. Fortunately, I didn’t press that button before I learned about its functionality. But if I did, all the data that the previous volunteer scanned would be completely lost and could not be retrieved.
Besides, there is no indication when the delete button is pressed. So in case I accidently pressed the button, I wouldn’t know. I was very cautious to make sure I didn’t touch the button while using the scanner, which of course affected my working efficiency. Due to the small size of the device, it was very hard to my fingers away from the delete button.
The scanner gives me hard time to execute my task, which can be considered as Huge Gulf of Execution. User needs to pay extra attention to the back button while working on the device. Without any label or instruction on the device, it is likely for a new user to press that button without knowing the consequence of loosing all the previous data. If user accidently presses the deleting button without knowing the functionality of that button, all the recorded data will be deleted which is actually not what user wants. Even worse, the effect of mistake is not reversible and the loss can be irreparable. On the other hand, the scanner didn’t provide enough feedback for me to interpret its state, i.e. user has no idea whether the deletion of data has been executed or not. This can be considered as a Huge Gulf of Evaluation. Above all, the scanner causes difficulties for users to execute the tasks, and evaluate the result of their actions.
2. Design Principles
The scanner violated the following principles:
a. Make It Visible
The delete button has no label beside and placed at the back with a small size. Without instruction, user will be struggling to figure out its functionality, or user won’t know the scanner has the function to delete the previous scanned data by pressing a button.
b. Provide Feedback
The scanner fails to provide any feedback for pressing the delete button.
c. Make Error Effect Reversible
The scanner has almost irreparable error effect. If the delete button is pressed accidently before backup, the data can never be retrieved.
3. Solutions
To solve the problems I observed, I have the following suggestions to modify the design.
1. A label should be added on the back side, clearly indicating that the button on the back is for deleting all the data.
2. It should use sound or light to provide sufficient feedback for the delete operation. For example, when that button is pressed and the data is deleted, the device can make a “bee” sound. The front indicator light can also flash with red color (the light flashes in green when the bar code is successfully scanned).
3. For such a small device with compact interface, it is not a good idea to have a screen to interact with user. In order to reduce the chance of mistake in operations, the deletion button should be made caved into the flat surface. This way, only when users intentionally press the button very hard, can the delete operation be executed.
Wednesday, January 20, 2010
Best Interview Experience Ever
First, the interviewer follows the typical interview routing. After introducing himself, he asked to briefly tell him about me, followed by a series of behavioral questions. As I was preparing for my other job interviews recently, I was almost ready for all of his questions.
And then he started technical questions. Some of the questions were also kind of basic. Like,
- difference of C++ and Java. When will you choose one over the other?
- explain static keyword in C++
- What is deadlock?
...
He also asked a series questions about hash, and lots of complexity questions of different data structure.
Some of the questions are hard. ( Maybe just I don't know the answer!) He asked what is "vtable". I actually never heard of it before, but I asked him if I can "google" it. Lol... he said, "well, this is a phone interview..." So I cheated by searching online and came up the answer. He also asked me "what happened when you enter a URL in a browser and press enter..." I was supposed to talk about the very low level internet behavior here, like how packages are routed and stuff, which I actually had very little knowleage. So my answer was messy and not organized at all. I was just trying to tell him what I know or what I can guess as much as possible. But he was very nice that he kept giving me hint and guided me through.
The interviewer actually called five minutes earilier than the scheduled meeting time. We started at 10:55am, and didn't finished until 12:15am. More than one hour phone interview~
During the whole interview, he was talking in a very friendly and enthusiastic way. He kept encouraging me and commended my answer. I definitely felt that he was happy to talk with me and really learn more about what I know.
The best part is , in the end, when I asked about the following recruiting process, if I passed this round. He told me that he is going to tell them to hire me! This is the first time that the interviewer told the interview result right after the interview! I was so excited about that~
It was the longest interview I have ever had, also the best one ever. I felt really relaxed and just be myself. I believe he had a good understanding of my knowleadge scope as well. A win-win situation for both part. Well, look forward to the next round, which is also the last stage.
Good luck to myself!