Wednesday, October 28, 2015

CS3216 - Losing track of the week numbers

It has been a while since I last posted something, probably because the past few weeks has been so hectic. I feel like it's really hard to manage all these modules. I'm losing grip on some of them, and even my 3216 Final Project is not progressing as well as it should be.

Complexity of a Project

When we first accepted the project, we knew that this can be a huge project. However, we did not expect it to be this complex. There are a lot of requirements from Garena that made us rethink about how are we approaching the project, how are we creating the schema, and how do we design the UI. In short - It's extremely difficult.

We considered making it a big project - expanding our scope to not just Garena. However, we decided against it for the module due to how complex it would be and the time limitation.

However, when we met with Garena, it turned out that they has the same vision for the project. Therefore, we decided to try to make a scaled down version of the product for the module.

Monday, October 5, 2015

CS3216 - Recess and Week 7

Recess week concluded surprisingly well. Compared to assignment 1, my group, fortunately, wasn't a deadliner. We finished almost all of the features by the night before the submission day, and we spent a few hours on the submission date itself to fix some bugs and write the final report. I even have enough time to go to the Garena Open House on Friday!

Overall, I think we did well for our assignment 3. Our team seems to be very organized. Sam and Louis are pretty good developers, and Yiting is an amazing designer. It has been a pleasure working with them.

I did not do much during week 7 though, because of... well... midterms. Evan and I did some UI mockups for our final project though. Oh, and we also met Orange in Garena on Wednesday.

Monday, September 21, 2015

CS3216 - Week 5 and 6

Everything is piling up. All the work that I have to do, not just CS3216's assignment 3, suddenly seems to be a bit too much for me to handle. And I'm.. somehow surviving through all of these.

Assignment 3
Thankfully, it seems like my assignment 3 team are very good in what they're doing. Seems like they are breezing through all the Trello tasks, and now I feel that I'm not contributing enough :'). I'm amazed at how fast they are working.

It seems like the opposite of my assignment 1 team. My assignment 1 team likes to work together to the point where everyday in the group chat we have at least one person saying "Are you guys in com?". We were also inexperienced with the stack that we are using, so working together did help. Meanwhile, this team is very decentralized - we work separate from each other, but we get the job done extremely efficiently. Or is it because our app is too simple?

Assignment 1
I was extremely surprised when Colin shared our app in Facebook. I was more surprised when Yang Shun sent the grade. It exceeded my expectation by a lot.

Personally, I was skeptical of the idea when Sebastian pitched it when we brainstormed. I was thinking, why would people want to see the IVLE events? As a member of the NUSSU commIT technical cell, I'm one of the few persons who are in charge of approving the events in IVLE. Because of that, I read a lot of the events, and none of them interests me, leading me to doubt that the system is even useful at all.

However, we actually managed to make this app work pretty well! Thanks to Sebastian (Awesome design and UI!), Haritha and Sharon (Worked tirelessly on the backend!).

Sunday, September 6, 2015

CS3216 - Week 4 (and 3)

Assignment 1? Done.
Assignment 2? Partially done, still writing comments.
Assignment 3? I'm eager to start.

Since I forgot to post my reflection last week, some content of this post will be relevant to week 3 as well.

Rants about the module

Even though the intention of the module is great, sometimes it feels like the module is poorly organized.

For example, during our meeting for Assignment 2, I vaguely remembered that there is a 5 words limit for each slide, whereas my other teammates did not. So, we checked the pdf file for the assignment, and the only thing that is written there is that "In particular, each presentation is limited to 20 slides and each slide should have exactly 20 seconds of air time.". So we ended up with some wordy slides and 19 slides, since it doesn't violate the rule written on the assignment handout. To our surprise, our slides were rejected. The 5 words limit were real.

I still have no idea why did this happen, or where did I hear the 5 words limit.  Probably Colin said it in the workshop. However, the teaching staff clearly mentioned that the workshop is optional. Information as important as this should not be disclosed only in the optional workshop. Might as well make it mandatory.

When the pressure starts to pile up on me, not just from this module, but from the other modules as well, I almost dropped this module. I would, if not for...

Assignment 1 - Awesome Team

... our very awesome team in assignment 1. Even though our team is not the technically strongest team out there, I feel that we really enjoyed working together. Even when we have a lot of problem, we would still laugh. A lot. It really helped to alleviate some of the stress. I did stress out a bit (especially nearing the deadline, since I'm not a deadliner and not used to work near the deadline), but I really enjoyed the moment that we had together.

Hopefully, my time with my assignment 3 group can be at least as enjoyable as my assignment 1.

Tuesday, September 1, 2015



Teamviewer is a remote desktop application. Basically, what it means is that you can connect to other computers and control those computers from your own computer. From the presentation, there are a few points that I can highlight.


According to the team, the interface is not intuitive, and I agree with them. For example, there's one menu with both a 'gear' shaped button and a 'spanner' shaped button. In any other app, both of these symbols usually means 'settings'. Here, they are functionally different, which can confuse new users that have just only started to use Teamviewer.

Teamviewer does have video tutorials on their site, but I think the presenting team made a good point. It would be easier for users to access the tutorial on the app itself, doing a hands on approach to learn how to use the app. Although that is a good idea, another good idea would be to improve the UI so that it's more intuitive and easier to learn for first-time user. By making sure that these first-time user stays through the learning curve, Teamviewer will be able to get more users.


For me, the most interesting thing that they talked about is about extending the commercial potential of Teamviewer. According to them, Teamviewer has unrealized potential. This application can potentially be used, for example, to extend the current console gaming industry. Instead of connecting the console to the television, the display would be in a mobile device that the gamer uses.

Personally, I think there are one more important issue before something like this can be implemented. The main problem is the input. Currently, there are some video games that are originally made for console, but now available on mobile devices. To do the inputs, they create on-screen buttons for users to press. However, in my personal opinion, not all video games can be extended using this approach. Usually, modern console games have a more sophisticated gaming input commands compared to mobile games, and as such, it's not suitable for mobile use.


On the other hand, I can definitely see the education expansion working. Sharing screen is a good idea to help others learn a new application. For example, when we learn how to code, a collaborative coding (text-only) platform would be good enough. With more graphical application such as Photoshop, Teamviewer would be able to help. When a student has a problem with their app, the instructor can connect to their computer and see what's wrong.

Overall, although Teamviewer is a good app in general, it suffers from UI that is not easy to learn for new users. One of the presenting team's suggestion, extending it to gaming, is also not doable right now due to the incompatibility of console game and mobile touch screen. I don't see such problem with education though, other than the potential technical issues of lags.

Sunday, August 23, 2015

CS3216 Week 2

When I started teaming up for the assignment, I thought that we have a good team. However, I'm not very satisfied with how we are doing this assignment right now: Development seems to be a bit slow. If I have to make a guess, there are a few reasons why.

The first one is how late we finalized our idea. Somehow, we couldn't seem to get a good idea to work with for this assignment. Either the idea is not cool, or we can't think of how are we going to fulfill all the aspirations using that idea. This late idea generation means that we have one or two days less to code.

Our overall lack of experience means that we need to spend more time learning new stuffs to code our app. We had some hiccups both on the front end (Ember.js) and the backend (Django).

Despite all these problems, I am confident that we can have a working first iteration by the deadline of the mid-assignment: Tuesday.

Monday, August 10, 2015


So.. Here we are. It's the start of a new semester, and this will probably be the hardest one so far. One of the reason is CS3216 - widely considered as one of the most challenging module in SoC.

For me, as a software developer, I'm really excited to learn about current technologies that people use in developing applications. I have done some projects using Python and PHP, but I'm more than willing to learn about other language/framework that my future teammates might be more familiar with.

Looking at the schedule, I'm also looking forward to learn more about presentation skills. I believe that this is one of my weak point right now. I did not do so well on my CS2101, and although being a teaching assistant for the past three semesters have helped a bit, I still get very nervous doing presentation.

Even though the module is challenging, I believe that if I can survive this semester, I will be a much better software developer than before. And I believe that I will.