Tuesday, 24 December 2013

Design Thinking

Last week, I attended a meetup about design thinking in Blk71. It was interesting. We were instructed to come up with a wallet for ourselves.

The first step was to brainstorm and draft a wallet for oneself on paper. I drew a credit card with a universal sim card chip on it. The card can be kept at the back of a phone. The rest payments will be handled in the phone apps. That was a pretty futuristic wallet.

The next step was to get interviewed by a neighbour who just drew his/her ideal wallet. I was interviewed by a Korean manager from JFDI.asia. The neighbor was supposed to make the wallet for me. He first let me share my ideas and concerns. Then he asked me to take out my current wallet and categorize the necessary items. It turned out that there are quite a lot of necessary items in my wallet and they definitely cannot fit into one single card. Some items like coins and keys also need extra spaces to squeeze into a wallet.

The next step was to interview the other neighbour who didn't interview me in the previous step. This neighbour believed that his current wallet is the ideal one. I asked him to take out his wallet to see what are inside his wallet and whether any items can be removed. Then I asked him whether there are any pains or inconvenience about his current wallet. It turned out that there are two problems: 1. He puts his name cards together with reminder teasers and band aids. These small items sometimes drop out when he take out the name cards. 2. When he travels to another country, the cash height sometimes is different from Korean cash. The Singapore dollar is taller while some other cashes are shorter.

Then we were instructed to abstract and summarise the needs.  My neighbour wanted a wallet which 1. has an extra small pocket to put small items. 2. has an adjustable cash layer to fit different height of cashes.

After that, we were given a paper to draw down the solutions for the neighbour and then briefly introduce the design. The Korean manager designed a very good phone case with its cover as a wallet. It turned out that there is already one existed commercial product named bookbook which is very nice. I myself designed a basic wallet with two additional features specially made for my neighbour.

That was not the end. We were actually given some minutes to really make a prototype out with some raw materials like scissors and color paper. Time was tight and the process was fun.

After making the prototype, we were instructed to listen to feedbacks from the client. Unfortunately, most of us didn't give critical feedbacks. Instead, we "haha" with each other's prototypes.

Then came the time for showcase and sharing. I shared two points learnt during the process: 1. No need for futuristic stuffs, things that fix problems will do. 2.Doing is somewhat more important than thinking

That was a fun experience. After the activity, I bought the phone case on Amazon together with some design thinking books. There happened to be an ongoing course named "design for everyday things" on Udacity. I found design thinking a really useful skill for industrial people.



Thursday, 12 December 2013

A Bit Unmotivated

Last two blog posts have been deleted because they are company related and the Prof is not comfortable to reveal them to the public. I also feel unhappy because my last month's blog count becomes zero. To me, idea worths nothing, but team is the key. Many entrepreneurs think in that way. But it may not be the same case in the academic/business world.

Unfortunately, I've got no life besides the project, thus I can only write about that in my blog. Just to bear in mind not to reveal the key documentaries of the company.

It's been painful weeks when we are in a state of transform. The lack of a clear project plan and consolidated vision brought many unnecessary mistakes. Now we started to talk to real customers and test ideas in real use case scenarios. However, the fact that we focus too much on the complexity of the features instead of light-weighted MVPs makes it too heavy to lose. A cooler approach would be to come up with multiple mini projects for market testing and then choose one main stream leaded by the users.

I started to realize some problems of building a company in SG. One big problem is the flexibility of employees. People are too free to job hop and there are a lot of easier ways to make money. Another problem is the conservative mind of some old generation people. Those people can mostly act as an investor or a business parter. When young people are very energetic to try out new things and explore opportunities in new environments, they might not be supportive. Kids normally learn most when they are given more freedom to fail heavily and try again and again. Now I feel less enegetic and optimistic when others who are not necessarily more experienced are controlling too much. I also start to understand why many hackers choose to build games as a favorite form of creativity.

Being a niave student, I wasn't smart enough to distinguish between good and bad people when I haven't seen many bad people in the school life. Now I start to find out that most relationships in social and working life are bonded by business relationships. That is not cool any more. I start to find myself being influenced by the business world as well. When one of my best junior friends flew back home at midnight, I didn't accompany him to the airport just because it'll be inconvenient and costly to get back. However, another junior friend accompanied him even though it will be very costly. People shall never trade friendship with business. Unfortunately, as we grow up, we lose innocence.

That's it.

Monday, 28 October 2013

Read More

I started to read more entrepreneur related books. Two weeks ago, I finished reading a book named "Hackers and Painters" written by Paul Graham. Now I'm reading another very interesting book named "The Lean Startup". I finished half of the book and found the concepts helpful in building a small&beautiful tech startup. However, practise is somewhat more important. Shamefully, the readpeer project didn't really follow the lean startup approach, but more of a traditional way. We didn't plan for the MVP(minimum variable product) the users' need. Instead, we focused too much on completing features we thought the users might love. We really need to test on the ideas before driving too deep to the development. We've tried to use Scrum for project meeting. However, the fact that most other teammates are part-time undergraduate students made it very difficult to build a real startup. The productivity is also quite low. In the past one month, the PHD and I are the two major contributors, however, I didn't find self-motivated developing Drupal in the old system. The only moment I found exciting in the past one month is when I used angular.js to polish the reader. One entrepreneur once told me that "To focus on building the team, not the exact product". I think that's a fair suggestion. However, the fact that the current company didn't spend enough energy strengthening the team made the so-called startup vulnerable. I may spend some extra money and energy on the human resource development of the company. Otherwise, it's very unlikely to become a dynamic&healthy growing startup.

Yesterday, a hacker from Beijing introduced three ruby books which can help me better understand the language and the framework. Thanks to his recommendations, I will read the books to better understand the fundamentals.

Other good things:
I started to play keyboards on sunday worships.
I bought a nexus 7 from Amazon. Android is cool.

End with a note from "Hackers and Painters". There is no ending for a paint, it's just that you no longer draw it.


Thursday, 10 October 2013

Seeking

"Let me think that there is one among those stars that guides my life through the dark unknown."--Tagore



It is undoubtably the most fruitful summer of my student life, especially the two months' experience in Beijing.  I planned to go for the entrepreneurial path instead of the normal office life. Gratefully, I received more blesses than what I should get. I'm not a devout Christian, but there do seem to be sort of supernatural power which directs the steps.

My final year project received an initial funding of 50k SGD which draws me to explore the project further. However, I know that my future career (at least the market) would be in China, thus I went for the entrepreneurial trip in Beijing with my own savings and determinations. Thankfully, I got accepted by Google Summer of Code again and can use the funding to cover the expenses in Beijing. More importantly, I've got to meet a lot of young entrepreneurs in meetups, coffee shops, incubators, hackathons, etc. I also worked with a very dedicated team in a meaningful online education startup. That could be a lifelong career to pursue even it might not become a profitable commercial organization. During the two months period in Beijing, I support myself with previous savings which is just enough. After coming back to SG, I started to work with the social annotation project as committed to Prof. Anthony. However, I realize that the project is very unlikely to become successful without professional involvement. Thus I went to Beijing again with GSOC's midterm payment + professional designer's pay from Prof. Anthony + a one-way ticket to seek for professional partnerships in Beijing. Thankfully, I knew a very good designer who is very talented to take the role. After 4 weeks in Beijing, I finally ran out of money. Prof.Anthony sent 2k SGD to me, 0.5k of which is for the designer's half pay.

I'm thankful that I did make good use of the funding. Among the first month' formal work(Mid August-Mid September), I received 2,863 SGD funding, 1,000 of which is for the professional design payment, 363 of which for the one way ticket to Beijing, 600 of which for saving a friend's life. 900 of which for my personal living expenses. All other extra expenses( like the return ticket to Singapore + the Mid-Autumn Day trip to home) are from either my previous savings or my GSOC account.

The new month's funding(Mid September - Mid October) of 1200 SGD is for my personal expenses in Singapore + EP settlement, etc. 149+37.45= 186.45 SGD of which is used for signing mobile broadband plan. 65 SGD of which is used for EP medical checkup+6 SGD for photographing+23 SGD phone billing. The others are used for my daily expenses. Other non-survival expenses(treating people meals + a music speaker + nexus 7) come from my GSOC account.  This month's house rental fee(500 SGD)+mobile broadband rental fee(35+ SGD) will be counted in the next month's bill.

It is not meaningful to list the accounting here, just to show that entrepreneurial life is hard. However, money should not be the most important thing to worry, but how to build a strong team. Team building is somewhat more important. But it seems that I'm not taking the most important role as a leader, but more of a software engineer. Thankfully, I did make some right moves. For instance, out-souring the design, modulating the project, etc.

Before committing to Prof.Anthony's project, I actually have got a better job offer from a technical startup. The startup is one of the very few real technical companies in Singapore. All the employees(4-6) are PHDs except my friend whom I introduced to the founder after I committed to Prof. Anthony's project. Their customers includes Rakuten, Japan's largest e-commerce site. Honestly, I don't feel confident to make Prof's project a popular product. However, Prof.Anthony insists that the project has a strong potential. It is actually his determination and persistance that drives me to work the project further. Personally,I'm not sure how long I'll be sticking to this project. But my entrepreneurial life has just got started.

Keep seeking, don't settle.




Wednesday, 25 September 2013

Done with GSOC

Last week's blog was written on Douban when Blogger editor wasn't working behind the Great Fire Zone. It's a brief summary on my four weeks' trip in Beijing. There are also some thoughts about managing a NGO.

This is the last week for the GSOC project. Thankfully, I managed to write a 20 pages documentation for the work I've done in these three months. Though it doesn't sound like a complicated project, there are quite a number of technologies being explored. Honestly, a right direction/instruction is somewhat more important than the actual coding. I'm grateful that my mentor Ashish gave me good suggestions on the importance of each sub project at the very beginning. This helped save a lot of time.

In this patient timeline project, we examined novel ways to create an environment to display a patient's medical records and medical history. There are three sub problems to address.

  • How to import the patient’s medical records
  • How to process the raw data and restructure the records data
  • How to render the data to the clients

After several weeks' trials and errors, we finally used bindaas server for data storage and database query interface. Node.js is served as the application server for data processing and user authentication. For data rendering, we use ejs template engine for clean templating and ajax for dynamic data rendering.



I've tried CodeIgnitor(a PHP Framework), Rails( a Ruby Framework) and Node(a Javascript Framework) for the application server. However, we finally picked Node since there is an official decent Javascript library for Medical Data Processing named BlueButton.js which can be used for data processing. The timeline data should be stored into the data server via Restful API after they are processed in the backend. Node.js is capable of handling JS scripts on both backend and front end. Thus it's a perfect framework for this project. Bindaas is a database middleware developed by Emory University which can handle database queries without concerning about the database management system types. The two reasons why we still need an application server instead of letting the client to directly communicate with the Bindaas API are 1. the Bindaas API requires a secure API_Key for the API queries. It is not safe to exposure the API_key in the client ajax calls. 2. there need to be some user authentication scheme in the whole system for the whole system to better store user related medical records.

The biggest challenge came when we want to render pieces of patient medical record data asynchronously in the client. Normally, a template engine updates a whole page after passing data from the controller. However, that would not be an efficient approach if the data come from different controllers&APIs. We need a better way to render sub pages piece by piece asynchronously without affecting the whole page. The first idea came into my mind was to use ajax since it's famous for asynchronous data transactions. However, my previous ajax experience told me that simply appending blocks of updated HTML data to a particular div tag results into dirty codes which is not elegant. There must be a better way! Luckily, we've found the ejs+ajax example . The biggest problem of asynchronously transfer data+clean code has been solved. That's quite a big progress.

There are some more stories about this project. e.g., the timeline data restructuring, design implementation, etc. For more details regarding the timeline project, please refer to the documentation.

Most of the skills were picked up at the spot, e.g., Node, Ejs, Bootstrap Grid System, etc. It is a very good learning experience. At least I'd say I'm twice more familiar with front end developments now. Personally, I believe that one right approach to better master a technical skill is to practise with real projects. I wouldn't say that I mastered node.js since I've only done with one small node project. However, I'm confident to say that I can build my own web projects with the web technics learnt along the way. Ruby on Rails(ror) is so far my most familiar web framework and Bootstrap is my most familiar css framework. Actually, I've done more than three ror small projects and three bootstrap 3 sub projects during the three months. It's really one of my most fruitful summers ever.

Bad things about GSOC. Maybe it's an individual case, but in my project, I am the only one who is in charge of the whole project(with mentor's help). That's more of a individual project than a group project. There is no peer monitoring or code collaboration, thus the whole project is not that tightly structured. I guess the whole project would be more interesting and efficient with collaborations between other developers. Another bad thing comes from my over commitments. I could have spent more time and energy in this project though there were unexpected important commitments during this short summer. Other than those, the GSOC program is really good for students-- a lot to learn, high mobility,good pay,etc.

It's good that I started to delete tasks and redistribute workloads. For instance, I trained a ruby developer for the CodeRobot company so that they can move forward without my involvement. I also guided another web developer to continue working with the CATS project in wanmen.org. It's not self-boasting, but I did learned a lot this summer. I find it grateful :-) After the GSOC project officially finished on Oct 1st, I'll have only two commitments left next month-- one full-time web development with Prof. Anthony and one part-time backend development for Wanmen's content management system. Hopefully, I'll get to be more focused.

Extra:

One lesson I notice among great people is that they normally read a lot! I should learn from them.

Another lesson I learned this week about losing weight comes from this BBC video. I started to practise the tips. Wish I can persist in long term.

Monday, 2 September 2013

Challenges are just getting started

It's my first month working with real projects(my real, I mean something that's going to be used by the public). It's so different from school projects. Every detail matters, from the backend logic to the page buttons. These two weeks, I worked closely with two talented designers, one from a well-established startup company named Umeng Analytics and another doing his own startup after quitting a mobile gaming company named HappyLatte. I know the first designer,PJ, in a hackathon. He is really talented, should be the best designer I've ever worked with so far. I persuaded Prof.Tung to send me to Beijing to work with him on the first prototype and it turns out to be a right decision. He is not only good at design, but also good at UX. He reads a lot. He already came up with a wireframe of the project. Next week, he's going to finish designing the first round of UI design(around 15 pages). The market price for a very good designer is around 5k RMB(1k SGD)/page, however, as his friend, he only charged us 5k RMB for the whole design in the first iteration. We'll go through another iteration in 1-2 months and we'll need his help again. It's not his designs that really teach me most, but the discussion about the project as a product. There are a lot of user interaction needing to be considered. As a developer, I focused too much on the functionalities. However, the values that the product brings to the user&how the user interact with the system is somewhat more important. I also became more familiar with bootstrap&css after writing the wireframe out.

The other designer, Pine, works part-timely with a mobile app and an online code-teaching website. The code-teaching startup came from the same hackathon two months ago. The founder decided to continue with the project and borrowed money from his relatives/friends in Taiwan. He recruited the designer to help move this project forward. I thought I could have some spare time to help him. However, it turns out that I don't have enough time for him since I have more important commitments. To give him a helping hand, I spent a day working with the designer to make the homepage out. I have to say that a good designer is really important. Pine was a software engineer when he was in college. However, he successfully shifted his career to be a web/mobile designer. That's so amazing. He is good at multi-tasking. He recommended a time-management software named TimeCop to me. I've been using it for two weeks and it works very well.  He also shared about some management tips, like using 15min daily scrum meeting in startups, how to work remotely&using trello for project management. Some tips are really useful. I have used trello in CS3216/3217 before, however, I didn't make full use of it. These two weeks, I've been using trello a lot in managing my own timings&projects.

I really need to be more focused. Besides Prof.Tung's project, I still haven't finished GSOC yet. This week, I also work very hard on the front end of the GSOC project. I'm really thankful that GSOC really help force me to learn a lot of new things. To accomplish certain goals, I have to pick up certain skills very fast. Perviously, I only know PHP as a backend language. To find the best framework for the GSOC project, I quickly learned Rails, Node.js, embedded javascript,etc. To fulfil the requirement of making use of a database middleware developed by the GSOC organization, I have to redesign the whole system to make the project modules nicely connected. Unfortunately, I personally has got some other commitments that I didn't put my full time into the project. I could have learnt more, maybe become a Node.js expert or backbone.js expert, however, what I've done are quite superficial, except that I really become more familiar with rails after doing some small projects in this summer.

Last week, I talked with another mobile game developer, who I personally respect a lot. He is about the same age as me and he has been working with his own startup for quite a few years. His company mainly works with mobile games, mostly on android platform. Some games are copied from iOS apps. He is a funny guy and I feel very happy communicating with him. Though I didn't really worked with him before, he is one of the most talented developer I've ever met with. He gave some suggestions on how to move my project forwards, how to do marketing as a tech guy and how to survive as a startup. One of his thoughts about how to create a small&beautiful company really brightened me. "When your company reaches to a state where the next big thing in a certain field can only happen in your company, then that's the moment that your company can really take off." For instance, it is instagram who make photo sharing on phones so easily. Why it's instagram, not some other teams? Even though it is not a big deal to make a voip app, however, why it is Tencent Wechat that sweep the whole China? So to make a killing app/website, you'll need to prepare hard for the moment to come.

Another sharing comes from a iOS developer about her company's most popular app. Her company is a tech company initiated by an American, a Norwegian and a Malaysian. They stated doing iOS app in a very early age(>4 years ago) and the base is Beijing. The target users are mostly overseas. Their most popular app is somewhat violet. However, people love to spend money on the product, especially those from the middle-east. When in public holidays, the Muslim sometimes love to spend lots of money on the games.  Among the global users, 30% revenue comes from Singapore, while only 20% comes from the US. That's an interesting phenomenon.  What's most interesting about her sharing is the leadership style of her bosses. These few days, her company has 10+ employees been kicked out, mostly senior engineers. The Malaysian is very good at managing tasks/people, while the American is very good at brainstorming. Most employees love the Malaysian boss because he is very clear in mind of how to manage the teams. However, the American don't know how to manage all these people. The cofounders sometimes argue with each other.The malaysian cannot stand the American any more. and moved out of the team and started his own business. After the malaysian moves out, the company cannot manage well any more. The American guy thus he recruited a professional manager to manage all these people, which turns out terribly bad. Most senior engineers quizzes the job because they are not well respected by the new manager from Shanghai. It's not stress that make the project move forward, but more on timing.










Thursday, 15 August 2013

Learning Ruby on Rails

 1. Polymorphic Association
http://railscasts.com/episodes/154-polymorphic-association
http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

For instance, a book can be liked and a video can also be liked. To make a generalised association which can like both a book an a video, we can simply make a polymorphic association named likeable which contains the likable_type and likable_id. 

2.  Choose between has_many :through and has_and_belongs_to_many
http://guides.rubyonrails.org/association_basics.html#choosing-between-has-many-through-and-has-and-belongs-to-many

For instance, a book has many tags and a tag can be associated with many books. To make a simple many-to-many relationship, we can simply use has_and_belongs_to_many. However, to create an indirect association through a joint model, we can use has_many:through.

3. execJs: 'Could not find a JavaScript runtime' error.

To add gem 'execjs' gem 'therubyracer'in the gem file.

4. gem mysql sometimes triggers the following error:"incompatible character encodings: UTF-8 and ASCII-8BIT". Instead of using mysql, we need to use mysql2 which solved the problem. To install mysql2, you'll probably need to install the following package
sudo apt-get install mysql-client libmysqlclient-dev

5. To run rails app on port 80, the following command should be used
rvmsudo rails server -p 80 or rvmsudo rails server -p 80 -d

To stop the process, check the process id by typing cat tmp/pids/server.pid and then kill -9 the returned value.

6. Some very useful toolboxes.
Devise https://github.com/plataformatec/devise
Omniauth https://github.com/intridea/omniauth
Paperclip(rely on imagemagick) https://github.com/thoughtbot/paperclip,etc.
Kramdown http://kramdown.rubyforge.org/



Wednesday, 31 July 2013

What is more important

Just recovered from last weekend's hackathon in Blk71. It was a nice one, except that our team didn't get the top prize.

Honestly, we are among the most hardworking teams and we delivered a cool app. That's great. Though it is the process that matters the most, the team still feel quite down when the result doesn't fit our expectation. The less hardworking teams actually made it, not because their apps are cooler, but that they used the apis provided by the sponsors. However, our app will probably be further polished to fit the real market whereas most other teams will not move on. That's a quite big difference.

The idea first came when Jerry(the project manager) and I met in a hotpot restaurant in Beijing two months ago. It's a travel app which records the friends' location when they post images and generates travel history summery.  Two of my juniors, Zeyu and Cui wei are very interested to join, thus we form a team to make the app out. Jerry himself is good at product growth and promotion. He also recruited two very talented designers which are great assets in his company. The company is now under a painful transaction state from mainly making social web apps to mobile apps. Socialisation is still the key value for the company. It is good that he already found the way to make money from his small apps(kind of social advertising). But the future is so uncertain that he needs to try on different ways to move the company forward.

To me, making something usable is an important factor. However, when I look back to my previous decisions, to create long-term value seems to be a more important perspective in my value system. If you made a very popular app today, but the app cannot add value to itself and quickly died within a few days(months), that's not a long term career. It's just a way to feed the company with short-term cash flows.  Some people say that one needs to feed himself before pursuing for bigger dreams. However, I recently find the saying not really that valid. Being an idealist and a practiser at the same time is possible, just that it is sometimes quite painful.

For instance, I find the wanmen university a long term career. However,  as a NGO, it can hardly support itself financially. The founder is an idealist. He quitted his PHD study in ETH and came back with a big dream to make higher education accessible to all. What's so amazing about him is that he is not only an idealist, but also a practiser. He really did a lot to make the university possible.  This summer, he taught university physics from 8am-9pm for almost a month EVERY day even without financial support. He even slept in office to save money to buy a high-quality video shooting device for in-class recording. I see passions more important than money in his case.

Personally, I'm also quite an idealist. However, I started to feel the pressure from the real life.  I've written in another blog saying that my top interests are 1 music. 2 education. 3 travel. Fortunately, I'm doing education now and started doing travel related technical service in the hackathon last week. Honestly, what I've being doing for education is not a very commercializable approach. I met a senior who is the CTO of an e-commerce technical service provider. He thinks that my recent education related projects(readpeer.com and wanmen.org) are purely non-profitable. What drives me is the 情怀 instead of the commercial potential. I admitted that. Why shall we compromise to the materialistic world?

However, money does matter. Fortunately, it doesn't matter so much to me at this moment. Last week, I felt quite overwhelming, to a state that I started to feel unhappy. I stated to rethink about my priorities and dreams.

I've got a few commitments. Let me list the stuffs down.

1. wanmen university content management system (July+ Early August)[education NGO]
2. GSOC bioinformatics patient timeline project(August+Early September)[feed myself+learning coding]
3. Travel app backend polishing(1-2 weeks)[travel related&for fun]
4. Clocky app polishing(1-2weeks)[for fun]
5. CodeRobot Website(August- October)[possible career]
6. ReadPeer design outsourcing and UX improvement(August- October)[education&product development]

I was working on the first 2 stuffs this month which are already quite busy. Next month is going to be more overwhelming. I'll probably need to share some work to other people&restructure my time table.

1 with a junior
3 with two juniors
4 with three juniors
5 with a front end developer
6 with another designer team

Once I told someone that I want to make some self-sustainable companies/projects. Gratefully, I'm walking towards this goal. As for serious career, I seldom have thought about that. A voice told me that I don't want to work for others, I want to start my own company. But what kind of companies? There are some role models, like 37signals and Instagram, which are small and flexible technical oriented companies. Though that sounds too ambitious, it is not impossible. IT insourcing as a way to feed the company and at the same time making own lightweight products to impact the world. No limitation on location, timezone, etc. That would be so great! The problem is how to position/brand your company and how to attract/become super talented people. I really need to learn a lot to be capable of dreaming that big.

One thing I learned from hackathons is that as a project manager, you don't have to be the best developer in the team, but you'll have to be the most hardworking one. I used to be quite a slacker, but I'm now more hardworking and becoming more trustful in the team.



Friday, 19 July 2013

Commitments

"When you commit for something, it becomes some sorts of responsibilities."

I came back to SG to attend the commencements few days ago. Actually, I didn't intend to come back so soon. Firstly, I still haven't finished the voluntary job in One-Man university(wanmen). Indeed, I enjoy it so much that I spend days and nights coding the system. Secondly, my favourite profs are not attending the commencements(Indeed, I think my favourite prof would rather me to work harder on the great projects than taking a photo with him). Thirdly, the commencement of CEG(computer engineering)takes place in different dates with SOC and Engin while my most projects are actually accomplished with SOC peers. However, I finally bought the air ticket, firstly because I have committed to Sharon(the NOC Israel coordinator) that I'd better come back to attend the commencement day since it is one of the most important days in one's life. Secondly, our iOS team has committed to attend the iCreate competition and I've got to work things out before the last minute. Another commitment is to Prof.Anthony when I told him that I'll start working with him from August 1st onwards. However, this commitment doesn't require me to come back so soon. I also told my little brother Rick Qing that I'll probably visit Chendu (with 70-80%certainty) when he's on vocation home in Sichuan. I've got a cousin from Fudan University who's coming to NUS for exchange next semester, thus there is a responsibility that I shall at least pick him up in the airport(August 1st) and treat him a dinner.  By coming back to attend the commencements, I actually can fulfil most of the commitments(Sharon's sincere suggestion, iCreate, Prof's work, cousin) by sacrificing some of my own passions(staying longer with the One-Man U team, traveling in Sichuan).

Most of my decisions are actually influenced by the opportunity cost of different commitments. For instance, an important reason I took Prof.Anthony's FYP is that I've worked with YunReading in CS3216 which is a digital publishing project. I don't want the project to die because of my own lack of continuity in moving this project forward. If I don't touch the digital publishing related area for the last year in NUS, I will probably never touch it again for another few years, which would be really really bad. It is me who decided not to accept the 6k purchase of the system, I shall have the responsibility to move it forwards(at least pay off the teammates' talents and hard work).

My initial commitment to One-Man University(Wanmen) is to make an iOS app for them during the summer. However, they have got no website yet. Since the NGO has got no extra hands to help it out, I've got to pick the skills up and build the web system. It's not a Coursera for the Chinese students, but a knowledge curation system which helps integrate useful online academic resources to the mass public. I built a basic version using Rails. However, there are not enough contents yet, thus we still haven't officially launched the system yet. To make it a nicer system, we've got to work with more talented designers/developers.

These few days, I'm learning Node.js because I've committed to the GSOC organisation that I'll work this project(patient timeline viewer) out in the summer. The main purpose for doing the GSOC is to financially support my voluntary work in Wanmen and learn more some stills along the way. However, when too many commitments come along, they become burdens. These few days, I stay late around 2-3 am finishing either GSOC or the Wanmen project. In the first two days back in Singapore, I stayed overnights with Zhixing to finish the icreate iOS demo.

In August, I'll move forward to other projects(primarily ReadPeer, CodeRobot) and hopefully not too many other commitments will come along. Otherwise, I'll have no life.... Currently, there are some potential commitments from other project teams and I have to learn to DELETE and FOCUS.













Monday, 8 July 2013

Super Fruitful Weeks

These two weeks are extremely fruitful. Almost all my expectations for coming to Beijing have been met in such a short time-- to form long term relationship with entrepreneurs here, to work with talented designers, to improve my coding skills, to experience the tech entrepreneur life, etc.

I'm loving the city. Though not as clean and nice as Singapore, this is a place for young dreamers to pursue their careers. As a famous song writer wrote about Beijing, "我在这里欢笑(I'm laughing here) 我在这里哭泣(crying here) 我在这里活着(living here) 也在这里死去(dying here) 我在这里祈祷 (praying here)我在这里迷惘(confusing here) 我在这里寻找(seeking here) 在这里失去(losing here)". The extreme inequality creates a lot of diversities and opportunities here in Beijing. The youth have a strong desire to be successful and they form active entrepreneurial communities in cafes, meetup groups, incubators,etc(mostly in and around Zhong Guan Cun).

Here is a photo taken in Cheku Cafe which is a tech hub for young entrepreneurs to work and communicate with each other. Programmers, VCs, designers, all kinds of people gather here. You can order a cup of coffee to chat with the entrepreneurs. Also, you can also spend 30 RMB to stay overnight and drink unlimited beverage. The scene looks more like an incubator than a cafe shop. There are quite a few similar entrepreneurial cafe shops around Zhong Guan Cun. This kind of environment seldom appears in Singapore.

In a weekend hackathon named Beijign Tech Hive, I, together with some local and overseas entrepreneurs worked on an interesting idea to teach normal people how to code. There are quite a few successful US websites like CodeAcademy and Treehouse who teach people how to code. However, there seems to be no efficient/fun code teaching websites here for the Chinese public. It's not a copycat, but our own thinking on how to gamify and engage the mass Chinese Diaosi(a term to describe the mass general public in China). There will to be a lot of trial and errors when we are not sure about how the business will go.

During the hackathon, a few VCs came and gave suggestions to teams. One suggestion from Mr. Hu who knows the Chinese IT industry so well suggests that the premium/membership model will not work well in China. Job portal service may not be profitable&workable if the courses are for beginners. A promising business model would be to work with IT companies, as a outsourcing recruiter for training, examining and recruiting programmers.  Another VC suggests that the Diaosi group is the most promising target group in China. A very successful live video streaming service named YY has recently tripled their stock price in NASDAQ mainly due to their successful self-positioning in identifying the diaosi market. That's a very interesting advise.

I worked very hard on the project since other PMs in the team don't really code... Well, personally I think good PMs should be more capable in coding and be able to build their own business. I picked up Ruby on Rails quickly and built the demo out with a super talented designer and two PMs who worked on the front end. Another android developer worked on the mobile platform and the team leader worked on the video contents. Our team got the second place in the hackathon, which is pretty amazing.

The team leader who got his MBA in the US is doing full time in entrepreneurship when his fiancee who works in microsoft can support him for a while. He is actually very clever in moving the project forward. He strategically form good relationships(share equity) to honorable people as mentors, which is good for positioning the company in the long run. The talented designer comes from another startup which is recently bought by Alibaba. He is interested to move this project forward. Two PMs in the right corner will be working on a traveling service and not be interested to continue working on this project. The android developer may probably help in a parttime basis. As for me, I'm personally not confident enough to make it a great service. My skills would probably only be able to support the early stage business for half a year-1year. However, by the time we are strong enough to employ amazing developers, I will feel extremely delighted. By then, I may become a PM working together with talented developers.

Integrity wise, I will never break the bonds in Singapore. That's why I didn't apply for fulltime job in the US/China. I tried to apply for summer/winter internships in the US/China. I even planned to delay half a year for Israel as a last chance to pursue entrepreneurship before serving the bond. Unfortunately, I didn't get these opportunities. As for the jobs in Singapore, I applied some interesting startups. However, that may not be the right time for me at this moment. Prof. Anthony is really interested to move his social annotation service forward and he offered me to work on his project for another half-one year. Well, I personally think the UI/UX is too bad in the industry standard. It's not so promising to make good money on that project,either. Doing enterprise solution would probably be a right approach in Singapore. However, that's not cool. I would rather a service being used by many people than dying in a corner with a good price but no one uses. Thus I suggested Prof. Anthony to target on the Chinese market. He also think that the Chinese market should be the way to go thus he agreed me to stay in Beijing for quite a while. It's very likely that I will be doing my own business( the coderobot project and part of the social annotation project) in Beijing in the next half-one year. I'm ready to fail and die in the next year. But I'm sure I will learn a lot along the way.

During the hackathon, I also get to know a few very talented developers. One of the teams work on a show-off app which allows the ladies ageing 20-40 to publish beautiful pics of their own to the public. Only positive feedbacks(like and share)will be allowed, thus the ladies will show-off more after using the app. Two of the team members are very talented programmers(one of which is among the most talented I've met so far). They opened up their small tech company around Zhong Guan Cun. The other team members are ladies who know design/fashion and love to show off. The super talented developer once worked with a business co-funder. However, when they received 5million RMB funding, the business co-funder kicked him and another tech co-funder out and continue doing the business in HK with other people. That was so bad! During the hackathon, a VC from Sequoia Capital also came. He was impressed by the developer on his intelligence. The developer shared some thoughts with me on being a tech entrepreneur. "It's like painting. Before finishing your work, it's like a piece of shit(piles of inks vs tons of codes). However, when you polish it in a year, it looks like a masterpiece.","To maintain a small tech company, we'll need to have new ideas every month, otherwise, it's very hard to feed the team." That's so interesting.

My main mission this month is to help the 万门大学(One-Man University) build a first stage website out. I used Rails to build the whole CMS system again which is hosted in Git. Unlike Coursera which provides all kinds of courses, Wanmen is more of a knowledge integration system which gives suggestions on how to learn by oneself. A good thing about open-sourced project is that it liberate people's creativity. I feel so lucky and honoured to work with my friend, Tong Zhe, the president of this virtual university. Wish all the best to him and the open university!



Thursday, 20 June 2013

@Zhong Guan Cun

It was a fruitful week.

The major task I do here in Beijing is to help a friend building an open university for the ordinary Chinese people. It's a non-profitable organization and the founder is not going to accept any commercial fundings. I know the founder personally during a trip visiting the Versailles in Paris. He was a master student in Ecole normale studying Physics. Before that, he was an undergraduate student in Peking University. When I met him in Paris, he already got admitted by ETH for the PHD study with full scholarships. However, instead of going for the PHD study, he returned to China to build the open-university,named 万门大学(one-man university). At the beginning, I thought he was doing the open university for fun. However, after observing for half a year, I realised that he really means it. Indeed, I think he is going to devote his whole life to the education career. In the past two months, he went to 30+ top Chinese universities to give talks on the open-university idea and successfully built good-quality academic communities on existing online social network sites and offline Chinese universities. The major task for this summer is to build an independent academic website for the public. I intended to help him building an iOS app. However, it's not as crucial as building the website. Thus I shifted my role to help building the website. There are two more people helping building the website. One is a software engineer from Douban, another is an undergraduate girl from Harbey Mudd College in California. I really learnt a lot from the Douban engineer,e.g., architecture, frameworks, design,etc. The girl was a bit over-confident. Thankfully, she's getting more humble now. We customised a content management system on top of an existing python framework and built a HTML5 parallax style front end design.

To support my expenses here in Beijing, I also applied for the GSOC project. It was quite relavant to web programming-- to build a timeline viewer for patients. Some machine learning algorithms will be involved as well in the later stage. It's not that important compared to the top priority open-university project. Indeed, I am thinking of not attending the commencement because the open-university is so much more important.

Other highlights:

I attended the China Accelerator meetup(http://www.chinaccelerator.com/), during which 10 entrepreneurs shared their experiences and suggestions. One ruby developer advised that "1.pick a market you want to serve, 2.plan for 20 years if you want to be a happy entrepreneur". I asked myself these two questions and my answer are: 1. students 2.education.

I didn't go to church last Sunday in order to spend more time with the douban engineer. It worths the time. I also persuaded one of my high school mates in Tsinghua university to visit the Haidian Church.

Tuesday, 11 June 2013

First Week in Beijing

Some highlights

1. I attended a talk by Amazon China's VP, James Fong in Peking University Guanghua school of management. In one of his slides, Mr. Fong highlighted Amazon's products eco-system in the following diagram which was drawn by one of Amazon's founders in the early years.  The diagram starts with sellers, followed by selection and customer experience, then growing traffic, lower cost structure,lower prices and better customer experience, finally a better eco-system. Some of the stages in the circle can be beaten by other competitors, but a stronger eco-system is not that easy to be challenged. The most important fact in this diagram is " Customer Experience" as Mr. Fong mentioned, that is why most companies now focus so much on improving "Customer Experience".

Another thing he highlighted in that talk is the difference between the Chinese market and the Foreign market in terms of e-commerce.  Two examples can be "Payment(alipay instead of credit card)" and "发票". Amazon shares around 10% of the e-commerce market in China with the purchase of joyo.com . This is quite good. However, the reason why people buy products from Amazon is not because of its superior user experience or cheaper price(Indeed, Amazon's product is quite expensive compared to some other e-commerce sites in China and Amazon CN's UX is pretty bad for the Chinese customers as some audiences complained about the tedious procedure of checking-out and buggy one-click purchase function in the Chinese site). However, amazon still owes its customers because of the TRUSTWORTHINESS it brings to the Chinese customers. Trustworthiness is so important. During the talk, the audience also drew some attentions to the coming 5% tax Chinese government is going to add on to the online-transactions. Well, it's hard to draw conclusions on what will happen to the e-commerce market in China.


2. I attended a non-profitable event by Chinayouthology which is very meaningful. http://www.douban.com/event/18974029/ Attendances come together to design education solutions for kids in rural areas. Many social entrepreneurs attended the event and I found it so cool. The founder of the 多背一公斤 social movement also appeared in the event. I had a short chat with him. It opened my eyes on what social enterprises mean. There are some other interesting social enterprises like the one who invits volunteers to read story books to kids in subways. NPOs doesn't mean the organizations shouldn't spend money, on the contrary, they really need the money to employ talents to move the organizations forwards. Unfortunately, the public don't really understand and these organizations are not so easy to get fundings and sponsorships. 

3. I attended Haidian Church English fellowship on Sunday. This church is much better than the one I attended last week. The pastor explains nicely and the songs are very touching. After the worship, new comers are welcomed to attend bible study groups. The church workers explained the key principles of christianity in 1-2 hours. Thankfully, the key principles are all the same as the ones I was taught in Singapore. Though I was told that the Chinese pastors are restricted by the government to not teach certain topics in churches, I didn't find any teaches wrong in Haidian church. That is great! However, one bad thing about that church is that they only teach 8 weeks' courses for people who are determined to be christians, while the new comers only have one course to learn about christianity. In another word, they expect people to become christians at the first course they get to know Jesus. That's so unrealistic...





Tuesday, 4 June 2013

In the Great Firewall Zone

I flew to HK two weeks ago and stayed there for three days before flying back home. The brief thoughts and observations of HK have been posted on my travel blog. My mum happened to be quite free during my stay at home because the printing factory she worked for was under investigation for its sewage pollution. There are quite a number of problems in China. Some happening ones in my hometown are pollution, food safety, ageing population, rapid urbanization, educational resource shortage for the less developed areas, trust between people,etc. Good news is that problems always come with opportunities. People of my generation are working on it to fix the unhealthy nation.

Last Wednesday, I came here to Beijing which is the IT hub of the whole nation. People are striving for survivor. Competition is fierce, even a call taxi app has got several competitors. http://blog.renren.com/blog/253739580/905754705

Behind the Great Firewall, Blogger, Google Drive, Google handout, Facebook, Youtube, Twitter,etc has been blocked. I am using a proxy server in Google App Engine to access these pages.

Some highlights of this week:

1. I watched a movie named “中国合伙人” in PKU-Hall(北大百年讲堂). It is really touching. The movie tells a story of three young men who started an english training school in Beijing and worked together to make it a big business. There are some scenes which I feel so touched. One of the scenes is the moment when the company gets positive revenues and the founders celebrate in a Karaoke room. One founder cannot control his emotion and sing the song “海阔天空” loudly. The lyrics is so touching and I cannot help crying."背离了理想,谁人都可以,哪怕有一天只有你共我". Another moment is when an old lady who gave extra tips to the hero when she saw the store owner pays very few to the hero. The lady said, her(the store owner) life would be like that forever, but young man, you won't be a waiter for your whole life, you've got to move on.  This inspires me when we are treated badly by the boss, we shall believe that we will be more successful than him someday.

2. I stayed in PKU Guanghua management school yesterday and happen to read an article regarding digital publishing in China. http://content.businessvalue.com.cn/post/10864.html I do foresee the trend that self-publishing will be more popular in the future. Even the educational materials can be part of a self-publishing service. Machine is going to replace the work of editors, which is the biggest part of the expenses in a publishing company. When the writers are not the employees any more, the whole business can be almost cost-free.

3. Cat lovers vs Dog lovers. Cat lovers are somewhat more of individualists while Dog lovers are more socially reliant. That sounds quite true. Personally, I seem to love cats more than dogs.

4. I attended the sunday gathering in the Chongwenmen church in Beijing, which is said to be the oldest church in north China.Well, I would say that I believe more on the teaching in bible than the priest or organization. The church is a bit too lady-oriented. The priest is a female, the choir group members are all females. One bad thing I encounter is that the priest asked people to read one bible story(Christ told a lady not to feed dogs with breads of her children), but she didn't really explain the meaning, which is a bit confusing. One good thing is the church members seem to have strong faiths here.

Wednesday, 22 May 2013

Flying to China

I'll be flying to Hong Kong this afternoon to visit one of my best friends in HKUST. Then I'll go back home in Shaoxing for a short while before flying to Beijing for a meaning trip.

The initial purpose for visiting Beijing this summer holiday is to know more young entrepreneurs, especially tech entrepreneurs of similar age, who might be my future partners in a future startup in China. That might sound unreasonable in such a short time(1-2 months), however, I still consider it as a very good opportunity and a wise investment.  Another purpose would be to find the pains in today's Chinese market when I, as a overseas university student, haven't yet known enough about China.

I applied two companies of my top interests- Douban and Xiami, both of which are music related. Unfortunately, Xiami is not recruiting summer internships due to the unpredictable changes in this July's regulation of digital music in China. Douban is good. It's a combination of both tech and arts which fits my taste. I do foresee a sustainable eco-system in douban's most products. For instance, it's famous douban.fm is adopting the free-premium model of Spotify. I passed their first round online tech interview. The last round was on the demo day of CS3217 and I requested to postpone the interview date for project showcase.Though the HR(intern) who was in charge of arranging my interview date promised to arrange for another interview, she didn't get back to me until all the recruitments for this summer were finished. I feel quite disappointed about the HR.

Fortunately, I have some other contacts. One senior who started his own business in both Singapore and Beijing is seeking for iOS/Android developers to move his service further. Honestly, I don't think his company's products create a lot of value, though millions of users access his social network app every day. Compared to the social network app, I'm more interested in voluntarily helping another friend setting up his non-profitable open university.  I met the friend in Paris when I visited the Versailles. He graduated from Peking University and Ecole Normale in physics and received full scholarship from ETH. Instead of going to ETH for physics research, he went back to China to start his own non-profitable teaching organization named One-Man University(万门大学). The vision is to provide good university education to every Chinese student, which is similar to Coursera. My friend really devoted a lot of his energy to building up the community in social network services. However, he is not a tech guy and he didn't really make the technology behind the university as great as Coursera. He needs more help. I think what he is currently doing is really meaningful. Maybe he is going to work on education until he die. That's so passionate and persistent.  I'd love to contribute as much as I can.

Other highlights:

I went for the WalkAboutSg entrepreneurial activity which allows every one to visit the local startups. I am really impressed by the Plugin@Blk71 incubator. The people there are so focused and passionate.  One of my CS3216 classmate, James Dam was there coding a photo sharing app. I met a Chinese team who works on the travel planning service. They quit high salary jobs to work on this project with only 50k fundings.  In the afternoon, I talked with Sharon from NUS about my current status. It was a nice sharing. She introduced Ruiwen to me via email and I visited him in BillPin on another day. It was such a nice sharing with Ruiwen. I feel so encouraged and bright. I also went to visit 2359 media in downtown with Kaiwei, who gave me some advise of whether to continue working with my professor on the social annotation project. He also gave some more advices as an entrepreneur. I feel so grateful to Ruiwen, Kaiwei and Sharon.







Tuesday, 14 May 2013

Time Goes By, So Fast

It's been a week since the last blog entry, time goes by so fast.

This week's highlights:

1. Rethought about career development. http://www.douban.com/note/276145923/
2. Treated my friends a traditional Shaoxing meal.
3. Started to learn Ruby on Rails. http://guides.rubyonrails.org/getting_started.html
4. Started to read the book "Simple and Usable Web, Mobile, and Interaction Design" by Giles Colborne.
5. Recorded some vocals. http://site.douban.com/shaohuan
6. Watched this Ted speech: http://www.ted.com/talks/angela_lee_duckworth_the_key_to_success_grit.html
7. Followed Ahbei(founder of Douban) on Zhihu(Chinese version of Quora).
8. "我认为世界上不存在一流的人才,世界上只有存在一流的人才一定是学习能力,谦虚,把自己当平凡的人" --马云(Jack Ma)

Tuesday, 7 May 2013

Graduated

After finishing the last exam, I'm unofficially graduated. It was a tough and rewarding semester. Here is a summery of this semester in mandarin.

Our success is built on top of other people's helps. Without all the helps, we cannot get that far. I didn't realize this until I came back from the sunday worship when one brother reminds me that Prof.Tan actually prayed for me. Many friends must also prayed for me, otherwise, my life cannot go so well. Most importantly, someone must be hearing and watching. I feel so grateful.

In the facebook profile page, it lists the top 9 friends to thank to in this semester. I'm grateful that I have the opportunity to know you all in my life. Thank you!

I am happy and bright about the future.


Tuesday, 30 April 2013

Power of Confession

The second half of this semester goes really fast. It is indeed the exam week now.

In the past week, I experienced the most intensive reading week in my four-year's university life in NUS.Actually, the last three weeks are the most intensive weeks in my whole life. I guess I will never forget these sleepless days, staying overnight with the passionate and super intelligent team mates.

Some highlights:
1. Wednesday's Project Demo.
Our app turns out to be very popular. Though we didn't know that we were supposed to provide a project id for voters to vote until the project showcase was almost finished, it is still encouraging to find out that we received very good feedback from the few only voters.

All positive!
I have problem to sleep over time for meetings or lectures. This app really helps to address the problem by integrate some games in suitable difficulties and nice group event message!! 
Interesting app
Interesting idea
"Very easy to use and a lot of interesting functions.
You can think about increasing the number of games."
very nice idea, cute yet functional and sleek interface. Very smooth animations which make the app look very polished. Hope their app can make it to the app store!
very nice interface, good idea and cute implementation. Very nice!
nice one
"Very interesting and creative!
It is extremely useful for group meeting, in my opinion."

Our team is planning to polish the code after the exam and post it to the app store. We can make it!

2. I bought an ebook from Douban http://read.douban.com/reader/ebook/565846/  titling
"不说,就真来不及了-纽约客的临终遗言"which means "It will be too late if you don't say it now-- New Yorkers' last words." 

The author said that he spent 350 dollars posting an advertisement on the New York Times newspaper collecting anonymous last words from the New Yorkers as a way to study confession psychology of human beings. He selected 28 stories and made them into the book. I was shocked by the deep meaning of the first two stories and bought the whole book after the free trial. Though I later knew from a review saying that the stories might not be true and the author might be fake, I read though the whole book on Sunday morning and found the lessons of the confessions really worth learning.  It is profound, which reminds me of religion and the seven deadly sins in the bible. People die for some reasons. Humans are too weak to be lured by sins. Without a strong and righteous moral law, it is very hard(or impossible) to maintain a innocent life. Be alerted!


3. On Friday evening, my teammates and I went to have dinner and then sing Karaoke to release the stress after the hard days. It was great.


I noticed that my blogger audiences are mostly from Russia after Google Reader is said to be shutting down. Maybe I shall write my own website and post the blogs there.

Monday, 22 April 2013

Intensive and Rewarding Weeks

These past two weeks, I've been experiencing the most intensive days ever. Almost every night, I stayed with my teammates in PL1,mostly doing project development(sometimes telling jokes). It becomes a biological clock to go for supper together in the midnight(order from MCdonalds' or go to a nearby Taiwan restaurant),continue coding until early in the morning,then sleep until the afternoon and continue the circle again. It is a super intensive, but certainly awarding experience. That would be one of the most valuable memories in my life, to work with these intelligent and passionate teammates. Sometimes, I'm not so efficient, bothered with FYP deadlines and other assignments.However,they help share the pain. I also share my passion and engagement.That is a great time.

Some highlights:
 1. Cat vs Dog puzzle. https://www.spotify.com/sg-en/jobs/tech/catvsdog/
     It is a tough one. Undirected weighted bipartite graph, to calculate the maximum flow.Still have problem solving it.
 2. iOS.

  •  push notification vs pull from server
  •  singleton(One independent Server class to handle all events associated with communicating with the server).
  •  grand central dispatch,block,multi-threads 
  • three ways to push new UIViewcontrollers: 1. presentViewController Modally.2. segue+navigation controller 3. loadwithNIB and using self addsubview to add new view. The third option is the most customizable one in terms of animation customization.
3. FYP report submitted.
     I finished the report in a very short timeframe(about three days). That was rough but actually deliverable. 

4. My Birthday
    Saturday morning, my mum smsed me saying that day was my birthday. I didn't know that because it is in lunar calendar. She is only one person on this planet knows the date.Be grateful.

5. Received the interview chance for douban as a summer internship. Will need to work harder to make it happen.

Need to sleep now, will be having a FYP presentation this afternoon. Good night/morning!


Tuesday, 9 April 2013

Some Highlights

1. A puzzle about sorting.
https://www.spotify.com/int/jobs/tech/zipfsong/
Given n double numbers, print the top m in a descending order. If two of the numbers have the same value, then the one appear earlier would have a higher weight.

This doesn't sound so hard. However, there are quite a number of tricks here. 1. Efficiency. 2. In Place Sorting.

I first tried quick sort. It supposed to be quite fast. However, I kept getting the wrong answer feedback. The reason is that when two numbers have equal value, quick sort doesn't make the original order in place.

Then bubble sort. Well, the answers would be correct, however, it's not efficient enough. Run Time Error.

Try merge sort, which is supposed to be in place and quite efficient. However,  still Run Time Error. When n is very large and m is small, it's too heavy to perform a sort to the n numbers then pick the top m.

It reminds me of heap, which keeps a good order during construction(heapify). However, it's also no good if we keep the heap size n when we are only interested in the top m elements. We'd better keep a heap size of m, then eliminate all the small elements out of the top m.  Priority queue! Thankfully, problem got solved.

2. Career consultancy.

I consulted Desmond who is a career consultant in SOC. He gave a very good advice on the career path. Firstly, I'd better work in an IT startup and learn some business while working as an engineer. Then go to a big company which gives a better branding of oneself. It would then be easier for people to trust and work with you if you're going to do startups. It's also safer to do startups while working in a big company instead of quitting jobs or doing it immediately after graduation. He helped refer to IBM and another startup company named "Thatz". Kaifu Lee also advise the fresh graduates to"participate first, then make it happen 先参与创业,再主导创业". I guess that's the right way.

3. CS3217 team project.

I have to say that the team mates are just too awesome. They learn and implement very quickly. Moreover, they are able to design the architecture very nicely. I am learning a lot from them.


Need to write the FYP report very quickly!






Sunday, 31 March 2013

Written on Easter

Haven't been to the church for quite a few weeks using the same excuse of being too busy with projects, I find myself get far away from the Lord.

This Wednesday when Prof.Tan and other seniors were having the Bible study in MR5, I happened to finish a project meeting. I hesitated for a while before diving into their discussion. Honestly, I'm not a strong believer, neither do I meet the standard of a Christian. "Not everyone who calls out to me, 'Lord! Lord!' will enter the Kingdom of Heaven." Personally, I'm not sure whether there is heaven/hell or not. Say there is heaven, I'm very unlikely to go there. I do sin. I copy homework, watch too many entertainment videos,etc. I doubt about Trinity, whether Jesus is the same as the father. I question about teachings in Church -- If the teachings in different Churches are not consistent and the pastors can possibly teach wrong things, how can we believe in the truth? I cannot even meet the standard of a decent man in this world's standard, how can it be possible to meet God's standard?! Thus it seems that I'm already predetermined to be not in the heaven, everything I do is kind of in vain...

However, besides all the doubts, I do think the Bible is believable.  That's why I read through the new testimony searching for the truth. Unfortunately, I still find it unclear whether Jesus is the same as the father...

"Only those who actually do the will of my Father in heaven will enter." I tend not to call for help from a higher authority if I can solve the problem by myself or a lower authority. That's not productive, but at least I do not bother too much for the higher authorities. I don't ask the Father what I shall do, but I do interpret the steps I move as a pre-determined action.


Back to this week's highlights.

1. I went for the CVWO interview. When I was deciding whether I shall do CVWO voluntarily, I hesitated.  It's not because of the money, but the TIME. I thought carefully on why I try so hard to find a good internship, even in a higher priority than my first job. That's because it is the last chance in the next six years for me to actually work in the workplace in another country before serving the bond.I'm not saying I don't like Singapore. Indeed, I like Singapore a lot. However, I don't want to be settled so early when I am still so young. There are possibly two alternative paths for me besides settling down in Singapore.

  • Be a technician in the USA
  • Be an entrepreneur and grow my business in China.

The latter one is somewhat more favorable. I didn't realize this until coming back from the CVWO interview. Six years of separation would mean a lot. In the past 4 years, I didn't make many new friends who are based in China. Indeed, I'm only in good touch of my high school classmates and less than 5 college friends in Harbin. My high school classmates mostly graduated from various subjects in good universities, lawyers, researchers, businessmen, etc. However, only 1-2 of the high school classmates are doing IT. I have a very good friend in Harbin who get admitted as a product manager in the WeChat department in Tecent, China. One of the seniors in his lab is inventing an instant messaging app. It would be a good collaboration if we can work together to make things out in the summer. Another possibility is to work in a startup team in Beijing. Beijing is going to be a great innovation center in the next few years. Knowing people and teams is so important. In the long run, I might have the chance to work with them again. After realizing this, I posted my resume to some of my favourite Chinese IT companies(douban,etc) based in Beijing.  The problem is that I'm only doing summer internship which may not bring long term value to the company, thus I'm also thinking of doing it voluntarily. I happen to know some contacts in Beijing. One is a journalist in a venture capitalist company, another is an interesting Peking University graduate who started a open university named "One Man University", another software engineer in Wandoujia, which is a tech startup making android market products similar to an iTune for android. There can possibly be some interesting sparks going on .

The USA option is also possible. However, the internship visa is very unlikely to get permitted within the next 1-2months. I should have applied it earlier(so far I only posted Spotify with no news). China is thus more likely to happen.

CVWO is great, just that I cannot confirm about the timing. 3 months would be a bit too much, compared to the opportunity cost for the China option. That's a bit greedy and may not be great to the CVWO people. Considering the long term investment, I think I shall go to China.

2. I went for the concert for the Script. It was awesome!

3. We met Prof.Sim for the CS3217 weekly meeting. We were the first team to show some working demo. He proposed another possibility that we can probably create a wakeup game store for designers to sell game designs. That's interesting. I guess it would even be better if we can open up an interface for developers to develop small games for us. Don't know whether Apple will allow that or not...




Tuesday, 26 March 2013

学而不思则罔,思而不学则殆

Confucius says, "learning without thought is labor lost; thought without learning is perilous". I don't quite agree with the translation, but I do find this sentence true. I personally interpret 罔 as "confused"and I find myself in a state of "confusion" now as a result of not thinking while learning.

When designing the architecture of a software, I didn't find a good clue until creating some viewcontrollers in the project and see how some open sourced projects approach similar questions. The thoughts usually turn out to be incomplete and full of flaws. That's different from very good software engineers. When two of my friends(very good software engineers) design the same software, they think very hard by themselves and draw the architecture on paper without touching the computer at all. Another example is job seeking. some of my friends(very good engineers/scientists) are very targeted. They seem to be more clear about what they like/dislike. In that case, they normally get offers from their desired companies wherever they decide to go. However, my mind is currently stucked with too many things and I'm not so focused. People succeed for some reasons. Though my way of doing things may not be wrong, it is always good to keep an open mind and probably learn some patterns from other successful people.

Important things to take notes.
1. I attended the Harbin Institute of Technology(HIT) Singapore Alumni Gathering on Tuesday. The president of HIT came to PGP for a short talk. Though I don't have a strong identity of that school, I do feel proud of its continuous progress. The president is humble and practical. His speech was full of intelligence. It's not the hardware that builds a school, but the Alumni.Many alumni already become Singapore PR/Citizens. Quite a large percentage are civil engineers, implementing projects like Gardens By the Bay and some strange-looking skyscrapers. Some are doing research in schools. It is also great to know that HIT is building up a world-class national space center to be the world's frontier in space engineering research.

2. I had the Mid-Term test on Graphics Rendering Technics. Thanks to Xiangyun who generously helped me understand some of the concepts, the test didn't go too bad. Honestly, I'm not quite interested in that course. I took this course purely because of the degree requirement. That's the only technical elective course I can pick that doesn't conflict with more important courses. Two of my preferred technical electives both conflict with CS3217, one of which is sound and music computing. As long as it won't downgrade my degree, that's fair enough.

3. I attended the Ruby workshop brought by NEO Singapore in the Saturday. It was a nice experience. I formed pairs with three different people to code Ruby together. I worked with a year one CS student(Minqi) on the last Ruby Challenge and we became the top three pairs who finished up the challenge.




Tuesday, 19 March 2013

A Less Intensive Week

This week is less intensive after the five CS3217 problem sets are over.I polished the ORC project to make it a splitView in iPad as a potencial application for my FYP. I also reviewed the Ray Tracing lecture notes and started to think about my career after graduation.

Honestly, I'm still unclear about my future. I sent out three copies of CVs in the NUS career fair one month ago. Two of which are EE companies,Micron and ABB, whose automation products look quite appealing to me but don't really fit my skill sets. The other one is Garena,which is a gaming platform company. I was mainly attracted by their company culture and talented developers. No news from Micron or ABB, but I did get a chance to go for interview in Garena the next day after sending the CV. The interviewer was a C++ geek and I became nobody when he asked me about detailed C++ questions.

In the SOC career fair few weeks ago, I also sent out three CVs. One Japanese game company(Tecmo Koei),one Silicon Valley Startup(NEO)and another Singapore health care company(iHis). For Tecmo Koei, they sent out a lot of examine papers to test the potential employees and focus less on the actual skills, which destroyed my passion for gaming and the company. I went for their final interview and thankfully, I didn't get it. For iHis, they will not be recruiting until late march.

This Wednesday, I went for a pair coding exercise with NEO. It's a really interesting startup company where I find my skill sets relavent. They make web apps as well as mobile apps. The company comes from Silicon Valley and the Singapore office now has around 10 employees, mostly software engineers. The one-hour pair coding exercise aims for test-driven development. One developer writes the testing functions and the other writes the actual class method implementation. We are taught about testing in school, however, this is my first time to be demoed about the actual process. The young programmer from CMU guided me through the implementation of a SET data structure from a scratch.  That was a good experience. However, the company doesn't seem to have enough vacancies at this moment. I may need to apply again some other day.

Besides these companies, I also applied for a digital publishing startup, where I happened to meet one of my friends, Aldrian who is a very programmer&scientist. The company is not that great, but at least Aldrian got the chance to do research on NLP without worrying about salary. Good for him.
The CEO is a NUS PHD. We had a short chat and he found it not a good match.

The job seeking process is really not fun. It's also a bit discouraging. What's worse, I have more important things to work on and I don't have enough time for the interviews. Well, I guess I'll eventually find one before August, but it's certainly not worth spending so much time on it. To make a better use of this coming summer vocation seems to be a more important task at hand. I may do CVWO,intern in China, or work on my own projects... Actually, I also sent out a CV to Spotify NYC, however, I don't think that's going to happen. Thanks to Prof.Ben who introduced Spotify's asian director to me. I get to know that technology is only part of an entrepreneurial innovation, a lot more need to be done to make things really work.

Another good thing about this week: I bought a ticket to the Script's concert. I got to know the Irish band via Spotify and I like their music.

Bad thing: Better go&review graphics rendering technics, otherwise,I'll cry next week.

Tuesday, 12 March 2013

Have Fun

One major difference between Geeks and Nerds is that geeks enjoy breaking/creating things while nerds enjoy understand existing things in a deeper level. Nothing good or bad about that. It's just personality. I guess I'm more nerdy than geeky in that sense.

This week, I joined the 2 day Hackathon organised by Labgoo,Singapore. The company consists of two young passionate people-- Sha and Raymond. Its main branch is an interesting Israeli startup known for its voice control game-Pah!  I knew this company half a year ago when Sharon, my friendly NOC coordinator found it quite a good match for me to go Labgoo for internship through the NOC Israel programme. It's a pity that I didn't make it in the end. However, it is great to have the chance to know the company better in the Hackathon.

Honestly, I love the company. Yosi is passionate and inspiring.  Sha jie is fascinating. Raymond works hard. They make interesting things. Recently, they are selling a tablet teaching app and just finished developing a voip iOS app. In this Hackathon, Sha jie and the girl power team (Xialin, Yin Yue, Eugene,one another) developed a whole product in a night, which is really amazing. This app gamifies the medicine taking process and provides data analysis for doctors to better monitor the patients. They executed the idea so well that the whole thing is actually working for real. Yosi also showed great interests in this app, especially for the data analysis part developed by Sha jie. I will have to say Sha jie is really amazing and unbelievable! Technical wise, Sha jie used the CodeIgniter which is a open sourced MVC framework for PHP. I happened to develop my app in CodeIgniter during this Hackathon, too. It is really good to use. I am also astonished by myself to master the framework so quickly. I'm also amazed by my teammate, Yangfan, who's an EE student and mastered HTML and CSS  quickly in a night. We two delivered a clean supermarket website and a rough iOS app to help housewives to better save time and money before going to the supermarkets. Though it is not completed yet, learning itself is so much more important than anything else.

There are quite a lot of interesting ideas showing around in the Hackathon, one of which is a music app developed by two of my CS3217 friends. The UX is interesting, probably inspired by a Chinese music discovery app, named Jing.fm. Another one is a social alarm clock which takes in other people's voices and customise the ring tones. Well, this idea is not new, there is another app in China which does the exact same thing. In the final CS3217 project, my team is also going to make a social alarm clock but the approach is totally different. The user will have to pass our game(up&down morning exercises/physical engine games,etc)before set the alarm off. Otherwise, we'll post a status on facebook. The other teams are OK interesting lah. Some use Unity game engine, some use PhoneGap, another startup using iOS gesture recogniser to migrate their facebook app to iOS platform.

One pity of this activity is that I didn't take the good chance to socialize with the people around.  It is actually a very good chance to get to know more people. I was again too shy to talk to Yosi and the others. After the Hackathon, I went for the CS3217 meeting and missed a second chance to mingle around with people. On Wednesday, I also missed the chance to meet them in N-house due to another project meeting. Well, technically, I am getting better, but still not good enough compared to VERY good ones like Wang Sha. However, I have the passion and determination to be a good software engineer in 10000 hours' time. One plan comes to my mind--  Maybe I shall work in Labgoo as an intern after graduation and train the skills more before meeting the standard of a VERY good programmer.

Some other good things of last week:
I worked out a small iOS app for my FYP and the Prof seems to be quite happy about that.
I submitted a summer internship application in Spotify, NY. Though I may not get approved as a fresh graduate, I shall at least take a try for my most interested company.

Bad things:
Didn't review the Image Rendering class. Dying on that module.

I recently find myself not confident enough and not satisfied with the work I have delivered. Maybe a shall give myself a more positive feedback and move forward with less burden. Have fun!



Monday, 4 March 2013

What you value most

Haven't really got enough time for a good rest in the past three days. I slept in the school lab@6:50am on Friday, 5:30am on Saturday and 3:00am on Sunday, rushing for the Angry Bird Clone individual iOS project. It turned out to be OK. Indeed, I guess I'm going to survive in the highly-stressed course, STRONGLY.

One of my friends, Jingping, shared a thought yesterday evening when we walked back together from lab to the hostel. "Everything is about trade off. It depends on what you value most." This is very true. When he shared about this thought, he actually meant that software engineering is not really that appealing to him any more. What he values most is "Health" and software engineering is not as important. Personally, I'm not as strong as him in software development, however, I seem to be more passionate of what I am doing. I consider software engineering as a tool to open up my dreams and a way to create values with my hands. It would be great if I can use the software engineering skills to make a difference in some of my most interested fields. e.g.,music,etc.

As for health, it is very important. I went for swimming on Friday and Saturday before the brain got short-circuited. It worked well and I felt less stressed out. However, if I were asked to spend another endless night to develop something great, I will still go for it.

However, the danger is sometimes people get blind of what they are doing when they get too stressful. Another danger is sometimes people are unable to take the consequence of the trade offs. This morning, I wake up late and missed the FYP meeting. Though my Prof didn't blame me for this, he proposed a question "What is more important to you, your FYP or CS3217?".  Honestly, I values CS3217 more, although it contributes nothing to the degree on paper. The problem is you will need to responsible to others when you start something(projects/relationships/whatever) with them. FYP is a responsibility/obligation, so is my another web checkin app. One can handle multiple tasks, but not that many responsibilities. It is not the problem with the courses, but the problem with my time management skills. I'm definitely overwhelmed.

I didn't went to the church these two weeks. It's not a good sign. Very likely that I'm already lost in the jungle:(