Monday, 28 January 2013

End of Jan

Three things to highlight this week

1. The human resource class regarding organisational growth/decline, very interesting. Be reminded to keep an open mind and reflect oneself to avoid self-arrogance.


2. CS3217 Assignment 2.

In this assignment, we are asked to work with ADT(abstract data type) classes to implement the polynomial arithmetic algorithm. It focuses a lot on testing and designing detailed test cases.

I started the assignment pretty early. After reading the whole assignment, I thought it to be quite OK. However, I kept delaying the tasks until time gets tight. I thought I could have finished debugging the Rational Term class by Thursday and starting writing the Polynomial class on Friday and finish debugging on Saturday. However, everything gets delayed by almost 1-2days. I finished the Rational Term class on Friday, but I didn't fix all the bugs for that class until Saturday night. I wrote rough codes for the Polynomial class on saturday night as well. However, it takes me a lot of time debugging the Polynomial class on Sunday. I ended up wrapping things up at the last minute and didn't fixed two important bugs until 1 hour after the deadline. The code quality is bad for the polynomial class, though I made the Rational Term class pretty clean after being deducted by many marks on the styles of the first assignment.

I used code like the the following to update a readonly property in a class, which I guess is a very bad approach.
            result=[[RatPoly alloc]initWithTerms:[result add:[[RatPoly alloc]initWithTerm:tr]].terms];
Next time, be more clear about the time and don't be self-distracted so easily. It's also more productive to write codes in the lab rather than a random place. Ask more but reply more on myself than other people's help.

3.  Roughly gone though the new testimonial once by this Wednesday. It is great to know more about Christianity through the holy Bible. However, I did encounter some problems while reading the book. One primary question is "is Jesus God". Jesus never said so explicitly on him being equal to God. He is more of the Son of God and a high Priest as described in the book Hebrew. There are some differences between son of God and God."The Son can do nothing of his own accord, but only what he sees the Father doing. For whatever the Father does, that the Son does likewise(John 5:19)". However, there are also places where we can infer that Jesus is actually God. "And the Word was made flesh, and dwelt among us(John 1:14) Who, being in the form of God, thought it not robbery to be equal with God(Philippians 2:6)http://skepticsannotatedbible.com/contra/Jesus_God.html". Christians describe this as a term named "Trinity" which defines God as three divine persons or hypostases: the Father, the Son (Jesus Christ), and the Holy Spirit. It seems quite natural to them as they accepted it by faith. However, I started to doubt about it after two Jehovah's Witnesses proposed that Jesus is not as powerful as God. Jews and Muslims also only accept the God as one person. The issue of how Jesus is becomes highly-debatable then. People have to come across this to be a true Christian. I'm still seeking for the answer. Will probably take a long journey before getting to know the truth.


A new week is coming!


Monday, 21 January 2013

Weekly Memo

The biggest thing for this week is CS3217 Assignment 1!

I fixed one last bug right around the deadline, which is fortunate.I feel like dying in the first assignment, but it only worths 5%! More tasks are expected to come later. It's not possible to be lucky all the time, thus I'll have to start the assignments earlier next time.

During this week, I did learnt quite a lot of software engineering stuffs.

1. Algorithms
1) 2D rectangle rotation collision using the Separating Axis Theorem
http://www.gamedev.net/page/resources/_/technical/game-programming/2d-rotated-rectangle-collision-r2604
2)Basic matrix rotation
[x,y][cos  -sin]
        sin   cos
3) Determine if two rectangles overlap
http://stackoverflow.com/questions/306316/determine-if-two-rectangles-overlap-each-other

2.Objective C
It's not so hard to understand as a programming language. However, I still got some problems understanding some basic terms like"Protocol(which is like interface in Java)","Delegate Class" etc. Will need more time/ask more to get to know all these.

3.How to Code
1)Do the research on how things can be implemented using a good algorithm before coding.
2)Test cases are important to validate the codes.
3)Good coding styles/clean code is important.
4)Spend more time&effort!
5)Ask peers when something is unclear to me before the last day.
Above all, the 4th principle is the most important. I didn't do well this week. Hopefully will do better and better.


That's it. Anything else seems to be non-important this week...



Tuesday, 15 January 2013

A Short Memo

(Wrote on Sunday)I bought the air tickets for my parents to visit SG during the Chinese new year. It is the greatest thing for this week. My mum is very difficult to persuade when money gets involved. Thankfully, I saved enough money to buy them the whole trip without her feeling any pain:-) My father won't leave his work for travel unless that's a big holiday like the Chinese New Year. For both of them, it is really a good time to visit. One of my high school teacher and her college friend are also going to come. It is pretty challenging for me to manage these two teams in parallel. A good approach is probably assign enough freedom to them and let them spend more time playing by themselves.

Personally, I'm fairly anxious about the last semester. Quite a number of things to do and some of them are pretty challenging. I don't know how hard CS3217 is going to be for me. The fundamental thing is that I shall prepare enough time for it. The bad thing is that I still got some other pretty time consuming stuffs to do. e.g., the mobile checkin system for a hospitality startup company(hopefully will finish within 1 month), FYP(thankfully some other people recently joined the project and will help take some job),parents' visit(<=10days,shouldn't affect me too much),job interviews. The good thing is that I will have no choice but to spend a lot of time on it and I know I am going to be technically stronger after surviving the course.

Giant buildings are constructed from small bricks. It really depends on how much time and effort I will be spending on each task. As from this week's performance, I would say it's fairly unproductive. After deactivated Renren, my daily time spent on social networks has decreased dramatically. However, after moving to the new hostel, I reactivated it agin and the time I spent on social networks has increased. Maybe I shall build an app some other time to help users better manage the time in social networks(e.g., help store and organize the news feeds so that users can check every few days/weeks without missing any important feeds).

One friend invited me to cycle around SG, I'm very interested.


Sunday, 6 January 2013

Goods and Bads of This Week

Bads.

1. Spent too much time on junk information. 

I didn't realize how severe the problem of junk information is until I deliberately noted down the number of logins I have performed to social networks. 

Yesterday, I logged in to Renren 17 times, Facebook 5 times,Weibo 7 times and QQ 6 times. Among all the news feeds(maybe hundreds), only 2-3 pieces from Weibo, 1 piece from Renren,1 piece from Facebook,1 piece from QQ are relavent and useful. I almost forgot all the information I have encountered last few weeks in social networks. Less time should be spent on random news feeds since they are normally not well-organised and easily forgotten. There is also a need for social network services(or third party applications) to become smarter and filter for more reliable and organised information.  Today, I reduced Renren and QQ by half, same for Weibo and Facebook. Will be reducing the number of social network logins to a healthier level.

2. Fail in distinguish between the important and the unimportant. I didn't manage to record and produce a song though that's one of my top interests. Neither did I spend enough time doing exercises. I could have allocated more tasks to peers in a hotel checkin system, but I ended up doing a lot of unimportant stuffs on my own.


Goods.

1.There is some growth in faith. I finished the Romans in the new testament and half of Joshua in the old testament this week. I also get to know a few questions/answers in the Westminster Shorter Catechism. I started to think of love in a more sustainable point of view which is based on common faith.

2.I discussed several interesting ideas with a PHD flatmate about what might happen in the next few decades.  There are a few interesting ideas to share, for instance, auto-cooking machines, more engaging augmented reality applications, improved reliability of information rating system. I also encouraged one of my best friends to learn web programming and build an interesting e-commerce application with simple and intuitive UI/UX. Played a video-processing game named Ball Strike which is interesting.

3.I watched the first two Stanford iOS development lectures and found it more understandable than the last time I watched them. Wrote two simple iOS programs.

4.The FYP gets some progresses. 

5.I tried the to-do list on  a memo paper and it worked really well.

6.Helped several people who got into trouble.
...



Thoughts:

Life is about seeking truth. I believe there is universal/absolute truth. However,what I found are mostly relative truth instead of absolute truth. Even physics is challengeable since the experiments are mostly based on assumptions.  Mathematics seems to be more true since the assumptions it based on is more fundamental logics like 1+1=2. What my Christian friends believe that God and his words are absolute truth while the rest so-called truth are relative truth. That's a bit too brief and hard to understand. I believe at least the moral aspect of the Bible is true. The value agrees with the universal value and it's testable. Problems with the universal value is that people can hardly execute the principles, that's where religion surpasses it. Personally, I think by reading the Bible as a moral book to standardise one's behaviour is already very useful. I'm now reading it as a way to seek truth.There are not many religious things involved for now, but we'll see where it will lead me to.