Sunday, January 31, 2010

FB APP ASS-IGNMENT

Last thursday night was too stressful to me. The deadline drawn very near already but our application was still full of bugs. We redesigned the UI that afternoon and have to make some change in the styling. Dilip and I tried to fix some bugs, implement something we hadn't implemented. Tomithy tried to convert his flash to video to publish in Youtube but failed. Later Tomithy and Dilip had to do documentation also. Everything was pretty crazy! I'm sure some times I was very irritating and not responsive. (Sorry to Dilip and Tomithy!) After all, we managed to pull out something run-able and submit. Oh yeah and that tarball requirement =.= It wasn't the end yet. Later that night, after come back from supper with others, I managed to fix some more bugs in the UI part, went to sleep at 5 and skipped all the lectures on Friday.

Assignment 1 passed, had it? We just managed to finish an usable version of our application by the deadline, so there wasn't any use of the AGILE approach. I suspect the deadline is actually a milestone that was given so that we could pull ourselves and release something and after that make use of the feedback from community (just as the first deadline to ensure we didn't start late). Now there is no deadline we have to face, but I don't think the assignment has been over yet; for if we believe in our application, we should continue develop it no matter what.

Personally I believe our application, Heartspoken, can do something different. The idea is to store your good memories, to say thank to your beloved people, to be thankful toward life. I myself observed and experienced the delight a thankful message can mean to another person. Our app was meant to be something useful, not useless-but-popular like many trashy apps in Facebook now. In a social network like facebook, our app can be even more meaningful.

However, it is a difficult application to develop. Not that it requires some fancy new and advanced technology, but that it is hard to sell. It is hard make people appreciate the idea and use it that way. Without knowing about that purpose, the application will be no different from facebook status or twitter. So far we haven't been successful in doing that. 2 weeks for 3-4 people are too short to make something meaningful out of that idea.

Speak of difficulties, our group had no designer, so Tomithy had to do designing. One night Tomithy spent around 6-7 hours started learning Photoshop and did designing. I knew how difficult it was for him to do all that stuff, that at the end he said he couldn't stand designing anymore. Till now I think he still prefer using Flash to design. For me, I was new to web programming so I had to learn mostly everything from PHP, javascript, FB API and stuff. Once I even wrote PHP code inside a script tag.. amidst of javascript code (like, using $ before variable..). Dilip was in charge of database interface but he was even a stranger to programming, he also had to suffer a lot. I'm sure he will never forget global variable stuff in PHP and how we wasted so much time debugging it. We were all learners. We all suffered.

Still, I must say our way of deployment was the best approach and most suitable for everyone. Everyone was specialized in something, work with each other through abstraction layers: like I only have to know which functions I need to call to get and store data, only need UI design to implement UI. Tomithy can based on functionality described before to design UI and intro video. Even if the result wasn't satisfying, at least we gave all we had.

Speak of feeling, I have came through quite different feeling throughout the project. From enjoyment (as described in previous entries) to hopelessness (failed to complete quite many functionalities described) and stress out. Even anything happened, I still enjoyed the companion of my friends. That alone mean a lot to me already. I liked the night spending with them in COM1, eating, working and chit-chatting. The fact that they were there was something to me already. Thanks, Tomithy, Dilip. And Kah Hong, Cedric and all other 3216s who spent nights with us in COM1.

But I did feel helpless. I did felt impotent. 2 weeks I had tried so hard, 2 week I given myself, yet I had achieved so little. Sometimes I felt lost, I felt that what I did was at the end all meaningless. That was the worst feeling.  However, I was happy that I had never stopped trying. Even in the worst moment I still tried to gather all my strength and concentration to work. I was strong.

If there is something we could have done differently, I would suggest myself to throw away AJAX and help Dilip debugging the database functions more actively, and after that focus on basic functionalies.. I would suggest Tomithy to concentrate more on selling our idea and educating users. As we didn't have a designer, we should better give up designing and decided upon something simple but user friendly in a very early stage. We should also talk less about functionality (as these meetings had no end), started deploying the most fundamental one the earliest possible. Not only it would help testing, it would help easing the pressure we had to face at the end.

There are still a lot of thought in my mind, but I should end here. It is a long article already. Hopefully no one will give up reading the whole thing. End with a comic I published drawed the next day after the deadline:



A funny story on Thursday night: On 1 side of me, Tomithy moaning 'I want to do programming', on another side Dilip complain 'I hate programming'. Quite amusing, haha.



Monday, January 25, 2010

A relaxing moment amidst of ...

When I am writing this post, I have just taken a bath, is staying in my comfortable bed again, enjoying instant noodle and listening to "Music of the night" by David Cook. It was a tiring day. When I came back at 5am in the morning, I had coded for nearly 20 hours continuously. Tonight our group also stayed back to work until 2am after the lecture. We only left because everyone was too tired. I could see Tomithy's eyes half closed already. He slept only 1 hour this morning. Dilip first time experienced the frustration of programming when he spent around 3 hours trying to debug a piece of code to send invitation to friends, and later faced database communication functions. Most notably is that Edison dropped the module. He promised to stay with us until this project due, however I still think it was kind of a mental shock for the rest of us. For myself, I didn't think much about it, though I cannot reject that I was a little discouraged. In my mind there is only 1 matter, that is there is a great application that we will have to finish.

Sunday, January 24, 2010

Sunday Selflection

Sunday comes put an end to the 2nd week of the 2nd semester. I woke up at 6am after a long sleep from 9pm yesterday. I could feel the comfortable mattress and the warm blanket around me. The weather was so nice! It was very hard to reject the bed and get up at that weather. I gave in and continue lying there, thinking about the last week.

I couldn't believe that next week is the third week already; I hadn't touched any module except for 3216, which had occupied me all the time. Oh and this week out of 8 lectures I skipped 3 lectures, coding and reading facebook wiki in 2 others, and left early in one. It was just like in the vacation, when you could enjoy something you did without caring about lectures and classes.

Monday was the second lecture of 3216. Prof was as inspiring as always. I must say he is a great speaker. All the inspiring talk, I won't forget. In the second part of the lecture, previous year students sharing their experience, I found some interesting ideas. Firstly, main programmer shouldn't code (no matter how good you are). This is somehow true, as it happened to me once that one programmer in my group couldn't do his part of work and I had to spend 1 day with him, not only to push him do the work, but also to help him solving problems that he didn't know how to do. Also a programmer, I know well how frustrating it is when you have to learn and do something new at the same time. It is much better to have someone nearby that you can always resource to (isn't it why we have teachers and tutors?). But mind your time resource and your knowledge. Secondly, don't tell people how to do a thing, but let them surprise you. Nice idea, but mind the deadline.

Thursday was the most enjoyable day. That night basement was filled of 3216 students: four groups was staying back to complete the mid-submission of Facebook app project. I could see clearly how much they devoted to the module. This is one of the major reason for the success of 3216 past years: not only did the students hold the best qualities, they were so committed to their projects. We had a great time talking, chit-chatting with the McDonald sponsored by prof. I enjoyed accompanied with them. It wasn't wasted time staying back. On the other hand, I also enjoyed the work I was doing.

By enjoying, I didn't mean it was full of enjoyment and happiness. Coding sometimes can be very frustrating. When you are learning new languages, many problems appear and you couldn't understand what is happening, why it happen. Ugrrr frustration. However, no one could reject the great feeling of learning something new, or making some cool function work. Sometimes I couldn't stop until making some new functions work. After all, if there's no difficulty and sadness, how can one enjoy happiness?

Ayah, time to continue working.

Saturday, January 16, 2010

Watch out! Awesome people around!

Had a very very exciting talk with Tomithy today (yesterday actually). WOW!



+.+ Only now I manage to write something for this talk. More detail later.

Friday, January 15, 2010

Make a difference?

This afternoon was interesting with a chat with Reuben and his friend Wash. I felt like many very small things suddenly connect to each other, giving me some sense of realization. Realization of an (seemingly) obvious thing.

Wash told us about his application (/ tool) to find at which time a bus come to a bus stop, how people use it and find it useful. His application adds value to the society & the users. In return, he gets satisfaction & the feeling of contributing his talents to other people. "You know, we have skills to create something like that. Right? Those who don't know programming can never do it lah."

Reuben also talked about his business. He concluded "you find something that is not good enough, try to make it better and make money out of it". Isn't it sound familiar? Yeah, prof Ben once mentioned about this method of solving an existing problem in our first lecture. Suddenly I remembered his words, linked it with the motto "make a difference" of 3216, with the words Mr. Ong Peng Tsin's purpose, linked them with the work Wash has done. Wasn't what he did making a difference? I also tried to reason what Reuben thought when started his business.. I realized that problems are numerous out there. I realized that every times I felt a service  unfulfiling, there might lie a chance.

Honestly, my first thought after that was "Oh. Wow. Now I understand... Problems are numerous out there. Vietnam has so many problems."

Suddenly I thought about coming back to "fix" Vietnam. The first time.

Thursday, January 14, 2010

it's complicated.

45 people. all of high caliber. all rush out to find teammates. individually.
after a while.
lets not count groups of 4 people.
the rest are like a mess.
not because others are isolated.
each person (try to &) connect with several people.
let's think of them as nodes in a simple, directed graph.
one connects to another if he think the other will join him.
one may ask it should be bidirectional, why directed?
because the other might not really mean what he said (diplomatic? tentative? look for more choice?)
mostly because edges are formed simultaneously
at 1 moment a person talks with several others
(record goes to Orry:  2 FB convo, 3 MSN convo, 2 Gchat convo, 1 Wave, and 2 QQ conversations, at the same time.. Finally done, yet still I'm 1 short for my seminar group.. Please drop me a msg if interested.. Thanks..)
some called himself & his direct successors a group.
some (intended or not) are in several groups
when a group has 4 people, all the people are deleted from the graph
the left over found that he had less people in his group than he thought.
--> trouble arise.
group of 3 cannot join group of 2.
some group hesitate to join another (ex: same skill sets, etc)
some are not actively searching for groups.
+.+

Disclaimer: Pls don't think much if you dont understand or dont want to read the mess above. Ha ha. I'm trying to convey how messy is the grouping process now. It is.

Monday, January 11, 2010

Embeddy

Just a quick note. Added Embeddy bot to my blog so if you're signed in to your Google Wave account you can see a small bar. Feel free to leave any comment or random stuff.