Sunday, November 13, 2011

CS3216, how cool is that!

CS3216 has ended, and with a happy ending :) Recalling the last three months, this module gives me a really cool experience, which I would like to share now.


CS3216 provides me with a rare chance to build three applications in one module. This is really crazy for someone like me because I never touched web programming before. And when I started learning it, I could not avoid making mistakes and it was quite time-consuming and painful to find a good way of writing the code. Javascript, HTML5, php, Objective-C... I cannot say that I have mastered them, but at least I’ve some experience on them and it will cost much less time when I need to use these tools in the future. How cool is that!


CS3216 is not much like knowledge-based but more problem-based. The whole module is not about learning the new web technologies and practicing them but solving problems based on these technologies. Finding a problem is not always that easy because it may have already been solved and there are many strong competitors; solving a problem is harder since we may have limitations in terms of time, money and technology and we may even cannot find clients that are willing to cooperate with us. But getting through all this is really beneficial since it gives me a nutshell how the real world works, and how important it is to solve problems and create values. How cool is that!


I made some really hardworking, highly driven and talented friends in CS3216. Working with them is such a pleasure and everyone has his/her unique skill. There were designers, backend programmers, front-end programmers and business people. We need all these kinds of people to get things done, and if we don’t have, we have to play their roles, which is not as easy but from which I can learn a lot. We didn’t just stay up together before the deadline, we stayed up almost EVERYDAY. How cool is that!


CS3216 let me do the final crazy thing in the final week. If I include the iOS version, I have totally written four applications. I am already a workaholic, and taking this module makes me believe that sleep is indeed optional and everything is indeed doable. How cool is that!


We have people from different countries in this module. We are not separated because we have common goals: solving problems to make a better world. How cool is that!


The only pity is that: we don’t have this module anymore :(


Saturday, November 12, 2011

iOS nightmare

The last week should be relaxing since we’ve done our application and our client was satisfied. The only thing to do was let the real users try and get feedback. But as my previous blog said, was there something cool to do? Of course!


Currently the web version works well. But we notice that the speed on mobile devices is not that fast because of the limitation of processing power. We’ve tried some ways to improve the performance but it is still not as smooth as native applications. Then we’ve got an idea: why not develop a native version?


This idea was a bit crazy since it was already Thursday and there were only six days before the poster session. And we haven’t started writing the report and designing the poster yet! If we screwed things up, the result would be terrible.


As Prof. Ben said: sleep is optional, everything is doable. We divide our team into two groups. One group for the poster stuff and the other two people develop the native iOS application. Therefore Ziwei and me started building the application from scratch on Thursday night.


Ziwei didn’t have any iOS development experience and I just played with the iOS SDK for a few times. Therefore it is hard to evaluate the time of development and we were also worried if we could finish it. We finally decided that Ziwei did the navigation controller and I designed and coded the views.


Though our application looked simple, there are more than ten views, which was a lot of work. Thanks to the Cocoa Touch framework, there were plenty of tools that we could use to improve efficiency. I finished almost all views on Sunday, so did Ziwei’s navigation controller. Then we combined the views, the navigation controller and the network and storage part together - it was Monday already.


Finally it was the time of endless debugging. We’ve encountered a lot of weird issues but we managed to make it completely usable on Tuesday. We survived!

Tuesday, November 1, 2011

Regarding the progress report presentation

I really enjoyed today’s progress report and it is good to see every group has done something different and cool, which rarely happens in other modules. :)


Overall I found it hard to rank the applications because I saw every group had put in a lot of effort and I was really reluctant to put any group underneath. Finally, the choice became somewhat random because it was REALLY hard to make a decision. :P


It seems that CS3216 is coming to the end. And since most of the work has been done, the rest is polishing and preparing for the final poster presentation. But is there any space to do something challenging and cool? Of course! As long as I want to turn crazy again and forget all of my final exams!


I really think doing a native application is better since currently there are a lot of issues in the mobile framework. If time is enough, it will be a good choice to port our application to different platforms natively. I think the user experience can be improved quite a lot. But on the other hand, it is worth trying new technology despite its various issues. HTML5 is prospective and it is time to grab the opportunity and prepare ourselves for future applications.


By the way, though idea is quite crucial in this module, the thing that attracts me most is still the final product. Sometimes despite the fact that the idea is not that original, it is still very enjoyable to see things nicely done. Generally, most of the groups have achieved this goal.

Things I learnt from the entrepreneurs

The talk of the entrepreneurs is very inspiring despite the fact that there is not much possibility that I will become an entrepreneur (at least I won’t do the business stuff myself...).


From their talk, at least I’ve learnt three things that not only apply for entrepreneurs.


One is motivation. Entrepreneurs are all highly motivated people and they all know what they want to do. Before they succeeded, they spent most of their time trying to clear the obstacles and survive. After they have settled down and let the company operate normally, they still think hard about how to make the company grow large and how to compete with others. Motivation is a force to push themselves to the limit. Whatever things a person that want to do and do well, he/she needs such a force and keep the force with them.


The second is persistence. Many entrepreneurs won’t become successful at first time and they may encounter bankruptcy or other serious issues. But sadly, they need to save themselves and it is really up to themselves whether they want to continue or not. Therefore persistence is really important. Moreover, persistence also applies for non-entrepreneurs. To keep the quality of the work good, we need to constantly put a lot of effort; to keep a good habit, we need to repeat it frequently. Otherwise, we cannot finish things strong.


The third is caring about the world. Entrepreneurs are those people that solve others’ problems. Before they find the problem, they need to know what is happening in the world and who needs help. For non-entrepreneurs, maybe they cannot set up a company and solve a big problem, but they are still able to care about others and help them — for free. This is enjoyable and also important because we have the same goal — to make the world better! :)