My ‘Recess’ Week

It’s hard to believe that recess week is already over, and my last blog post was just as recess week started.

Well, thanks to NUS’ brilliant idea of starting Week 1 late on Thursday, all my lecturers happily shifted all their lectures to the Monday-Wednesday of recess week to make up for their lost lectures. NUS, please don’t do that again, we technically have no recess week.

My Tuesday of the recess week had a timetable of 10am-11pm, with only a 1 hour break in between. Awesome right?

Complaints aside, I’ve finally finished my second CS3216 assignment with my team, Meet2Eat!

It was one hell of a ride when developing this project, mainly because of a few issues:

We didn’t use version control. I have no idea why this happened,Β  and it’s not like we only have 1 index.php and 1 javascript file. This actually led to rather disgusting manual integrations between our individual work, and sometimes we get people overwriting other people’s files on the web server. It was disastrous, and I’ve learned my lesson.

We started quite late. I guess everyone kinda burned out a bit after the first Facebook assignment, and thus our main bulk of coding actually came from the last 2 days – I made a record by sleeping 2 hours and eating 3 meals in 2 days. One of the worst times of my life. Really should’ve started earlier.

Chalkboard didn’t do what we thought it does. Our app is supposed to recommend eating places to a group of friends; and we were expecting chalkboard to deliver locations based on geolocation. But NO! Chalkboard is a promotions app, and we didn’t do enough research. In the end, we had to resort to displaying promotions only (and caching the locations in the process) because there were simply no other APIs that provides what we need. It was a major overlook on our sight.

We were not crystal clear about the UX. Halfway throughout working on the project we actually didn’t realise that each of us have a different impression of how the main use case (creating an event, inviting friends) is supposed to be like, and this led to hours of ‘idea refreshments’ to get everyone to agree on the same flow of usage. 😦

Despite the problems, I’m happy that the app turned out quite well (in my opinion), and I hope our hard work won’t go to waste.

Thanks Vincent for all his super organized server PHP code, even though it turned out quite hackish in the end =P I’m glad that my JS AJAX stuff was able to integrate with you quite smoothly.

Jun Hong has some crazy learning speed, he picks up things very fast! Thanks for all the Google Maps API stuff, and I know it must’ve been crazy trying to get it to play nice with jQurey Mobile. :/

Yong Shen is an excellent designer. I’m really sorry that we didn’t manage to implement the UI design the exact way you designed it due to time constraints, but I really would like to thank you for all your efforts in designing, the report, and photoshop (XD).

Overall, I’m glad that we did our best and I just hope that it would turn out well. Go Meet2Eat!


Case Study 1: GetHelp!

It’s really interesting to take a look at a senior project and do a friendly critique on it. πŸ™‚

GetHelp is certainly quite a cool app – when I first read the case study PDF I thought that it is something that I would want to use. They sort of capture the need of a person to ask for help and make this ‘service’ systematic – by allowing sort of an official platform for people to ask for help and/or help others. This is kind of similar to my first project, ShopForMe, in the sense that we both capture an informal service and attempt to ‘systematize’ it. (Is there such a word?)

The first thing that I realised after I finished going through the app’s details, is that the interface doesn’t feel professional. Take a look at Quora or Stack Overflow, the way they design their pages, in my opinion, makes it useful and effective. If you take a look at Stack Overflow’s website (versus the Overview page of GetHelp), Stack Overflow actually place emphasis on the title of the message and the tags of the help post.

Stack Overflow VS GetHelp!

On the other hand, GetHelp somehow has its focus on the ‘Help Him!’ and ‘Refer a friend!’ buttons, which doesn’t really make sense as what’s important to a helper is that the subject that requires help needs to be something that the helper is familiar with.

Other minor comments about the UI:

  • The slanted buttons at the top right are.. too slanted; it’s difficult to read and it should just be made vertical.
  • In the Projet Page, the ‘Helpers’ and ‘Probables’ lists at the side looks like advertisements at first sight. This actually clutters up the screen and makes it look like a badly designed app.

As for functionality, GetHelp managed to cover what it intended to; the objectives are clearly delivered in the different pages (posting a feed, referrals etc). However, from the description of the app, I feel that they did not make good use of the tags system; there should be a system to sort the needs of your friends in tags or categories. This way, as I’ve mentioned above, the helper can look for needs that is in his area of expertise. Certainly, no one likes to scroll through a long list of needs to actually look for something that he/she can help.

One thing I don’t really quite get though, is the Wish her luck! button; it doesn’t really make any practical sense and surely doesn’t add value to the app.

The options given by the app when posting a need is also, to be honest, quite weird. A deadline certainly wouldn’t help you in securing a helper faster (it’s not shown in the needs list), and in the first place, the helper is doing you a favour by helping you, and it wouldn’t make sense to chase him. I feel that the description box should actually be emphasized more as it can be made a 1-2 line detail about what you actually need help in – a too general question wouldn’t entice helpers to help you.

As for the incentives, we take a comparison again:

LEFT: Stack Overflow, RIGHT: GetHelp!

I might have missed something in the app, but it appears that if you pressed ‘Help Her!’, you automatically get a +1 in your list of helps, instead of the person in need confirming your help. This doesn’t really make sense as a good helper requires a good reputation built from other members who received his/her help. Stack Overflow does exactly this, in that other members can raise the reputation of the helping member if they feel that their queries are responded appropriately. In this sense, GetHelp doesn’t offer constructive statistics, but actually abusable ones, and the flawed badges/rewards system will not give much incentive for users to continue using the app.

In this current state of the app, there’s actually a big problem that I found – there’s not much difference between the app and normal Facebook statuses. If I need help, I can just post on my Facebook status, and naturally it will work the same as if I’ve used the app, except that my friends can respond immediately without going through the process of allowing an app to access your information, blah blah blah. (They can tag their other friends to refer) The lack of categorization and the flawed reputation system are the cause of this, and it really doesn’t give much incentive for people to use the app.

All in all, I believe that GetHelp is a good idea, but the execution wasn’t very well thought. They need to have more differentiating factors to attract users.

Pitching and human nature.

And so last Monday we had a lot of external parties who came to pitch their project ideas to us. I read about Prof Ben’s comment on Joey’s blog that the pitches are actually more about the problems out there that people are trying to solve.

In fact, most of Joey’s comments on the startups in Singapore revolves around other different startups that have similar, if not the same, ideas; and whether they’re still running or have died down. If they’re still running, good for them in the successful way but bad for them that someone’s already trying to solve the same problem in a different region – things like vs RateMyProfessors, they are localized to a specific country. It’s just like Darren’s comment too – “Baidu is kicking Google’s ass in China” – I guess it’s good that people see value in others’ innovations and are trying to bring it to their local market.

If the startups have died, I guess the current new ones are trying to execute it in a different manner, and we’ll see about that.

Okay enough of that.. back to a little about the presentations I’ve heard. (I left halfway due to some matters, so I didn’t really hear the pitches from the later presenters..)

Oops, the red error line XD

I thought the concept was not too bad, building on existing social games but integrating the values that HDB wants to pass on to the younger generation into the game itself. The only problem is, I seriously don’t think Singaporeans are going to play the game, and even if they do, they probably wouldn’t actually care about the values.. I have yet to see a really successful game-learning model, and I guess everyone’s trying to find the right execution.! I think it’s a really good idea, and they’re doing quite well (according to Prof). I wasn’t sure what kind of help that they were trying to ask from us though. One thing I can think about is a native/HTML5 app for mobile devices; I can think of myself needing a certain household essential on my bus back, and I can just take out my phone and purchase something. I’m not sure about the delivery charge though.

My team’s using it for our HTML5 assignment πŸ™‚ I am a little intrigued by why the app is named Chalkboard though, it sorta doesn’t feel correct to me. Otherwise, it’s cool, and useful.

Gary Ong.. is weird. To be very honest, I felt like he thinks he’s a good speaker, but he really isn’t.. I can’t comment much about the technical stuff about stocks, but what I can say is, building an app that helps people to predict market fluctuations is kind of dangerous; I can already imagine customers complaining to your company about how it’s inaccurate, blah blah blah.

Dr Dana Elliot gave a good presentation, and I guess a ‘utility’ app (literally!) is a good one to have on your phone. The only problem is actually getting people to install it into their phones (and not uninstall it afterwards because of lack of storage space).


Yesterday we had Milton Chen, CEO of VSee to give us a lecture on.. a PhD in Human Nature, haha.

He actually came last semester in CS3217, and I have to admit I probably didn’t absorb much the other time because I really can’t remember what he said (except the same slides) last semester.

I was actually wondering whether VSee can hit into the mass market – with the good technology and ease of use (one of their focuses?) it can be a competitor to Skype. Refine the interface a little (more eye candies..?) and we have a good competitor.. But I guess the end-users they are targeting is not there (especially since Skype has such a large market share now).

Micro Learning. This is actually very true – I guess we’ve all been learning nonstop from each other since we joined CS3216, be it coding, working with partners, or time management. And about breaking patterns, I think it’s really something that you have to consciously tell yourself to do; sometimes a small thing that you tell yourself to change might just disappear because you forgot about it. It happens to me all the time. Like how I wanted to brush my teeth with my left hand yesterday night but forgot (lol). Gotta start telling myself that.

Aim for boredom. This is, in fact, the exact opposite to what’s currently happening to me – I sorta decided to do everything I am able to do nowadays, because I know there won’t be chances to participate in cultural activities once I start work (or have a lot lesser chances to). I guess I really need to give myself a break once in a while, and some random things might just pop into my mind. I’ll definitely make use of my ‘bus creativity chamber’ every Friday when I travel to attend my dance class though. πŸ™‚

But again, I believe everyone’s who’s involved in cultural activities will share the same sentinents as Milton – the inspiration for choreographing dance steps or melody composition really comes in at the most unexpected (and often bored) time.

Live life with urgency, but do the important stuff. Two words – priority management.

Sandwich. This is kind of ‘-.-‘; it’s like me telling another guy ‘I’m trying to be subtle, I hope you didn’t notice it, but you probably did, but you’re not as hurt as if I go straight to the point’, but hey, whatever works right? I know that I am especially bad at communication, in the sense that I always have no idea how to portray my idea across in an effective way, so I guess this is something I need to pick up.


I’ve learned (the hard way) that taking up too many commitments is not good, especially when you realise that you start sacrificing one for the other and end up not doing well in everything. Yes, this semester.

Facebook Assignment

Typing this on a 2am, with a full day dance camp in 6 hours’ time. How awesome is that? πŸ˜€

I just wanted to pen down my quick thoughts on all the groups’ apps before they disappear from my mind.

I have to say that out of all the groups, the ones who impressed me are Penny Swap, Kilometerstones, and PhotoC. And they got me in different ways.

The UI design is sleek. I’m not so sure about the color combination issue that was raised in Facebook, I actually liked the colors – the vibrance actually makes me want to use the app. Sure there were some bugs here and there (like my SQL error on inserting a request), but first impression counts and this app caught mine.

Facebook integration into a project tracker is actually kind of interesting, where you can browse your friends’ projects, and track your own projects/tasks through Facebook wall posts. I think it’s a cool idea, since if you’re doing a project on a Facebook site, you kinda can’t escape from procrastination. Hohoho. (Not sure whether this idea is already implemented though).

This app actually offers something no other group has (correct me again, if I’m wrong) – a splash tutorial (much like the Pulse screen that I highly praised in one of my previous blog posts). It was an elegant yet nonintrusive way of teaching me how to use the app, and the UI of the app itself is also quite good, sans the THOUSANDS of images on the main screen.

This actually leads me to what I saw from most of the apps in this submission (including my group’s): there’s a steep learning curve. In the sense that I seriously have no idea what to do with the apps most of the time; PhotoC really won in that aspect. I guess our group should have also put up a little tutorial (such as a popup to point users to create a buy/travel post), to make users’ life easier. Of course, you guys can argue that this is a halfdone product, but I believe that one key component of even a minimum viable product is that it should be actually usable and easy to pick up. Many of the apps didn’t have a clear objective, I feel.

But I guess tutorials don’t work on everyone..

CS3216 + Dance Blast

There’s gonna be a lot of things in this blog post, but I’ll hide the non-CS3216 related things after the break, so you can just read my reflections on the Facebook assignment and Facebook/iPad seminar πŸ™‚

And so I guess 25% of CS3216 is over. It’s been a crazy 4 weeks, with both our presentation on PDF Expert and, to a much larger extent, ShopForMe. I really appreciate the reviews that my classmates are giving me, and some of them were really δΈ€ι’ˆθ§θ‘€ – or in other words, right on target.

Some of you mentioned about the weird choice of us mentioning the music functionality in the app – I admit that our group was also pretty ill-prepared when it came to that argument, and to be honest, I think that the music function is more like a form of convenience in case you happen to need to open a certain mp3 file when browsing through e.g. your DropBox. But again, that doesn’t happen all the time. I guess it wasn’t a well-constructed argument. ><

Lack of comparison of free options – Again, something we guys missed out, we should’ve compared free options too and possibly showcase the features PDF Expert has that others doesn’t.

Demo video to showcase its features – We chose not to do it as I felt that screenshots were enough (I was in charge of the good/bad section and hence the comparison), and it would be quite difficult to build a video to showcase comparisons etc. Doodle Buddy definitely did a great job on the video though.

(Nope, creating slides on Prezi is quite a breeze, took me only 1-2 hours, and a fun time spent at that!)

Not enough justification for its $10 price tag – We didn’t do a good job in the sense that we did not think about how to counter the argument of having 10 different free apps that does the same thing. And I guess bringing out the point about its instability didn’t help much.

The idea of having all-in-one features in one app is really up to personal interest, but now I’m quite convinced that the majority is not for the idea, haha. Besides, I guess switching apps on the iPad is easy as 1-2-3.

iAnnotate comparison – Our fault. 😦 we didn’t do enough market research..

Defensive about apps – >< maybe it’s because I used PDF Expert for too long and grew accustomed to it hahaha I will definitely take note of that.

And that’s about our presentation. We definitely still have a lot to improve and I really like this idea of peer critique – it’ll help everyone for sure.

And we’ve finally submitted ShopForMe! (Such a long overdue post hahaha)

It was tough, really, to juggle CS3216 amidst all my hall activities (one hand can’t finish counting the amount of CCAs I’m in), and I don’t even know how I’m gonna survive the iPad assignment; but ShopForMe was definitely an amazing experience for me, in terms of working with a different bunch of people.

Chun Teck, my long term partner, been working with him since CS2103. This is the 3rd major project that I’ve coded with him, and I must say, he’s really good. Tanked a lot of stuff, and picked up CodeIgniter with me fast. Has this pro aura around him.

Alan, the cool NOC dude, really knowledgable about building web apps, with all the PHP jQuery AJAX things. Alan did most of the theming as both me and Chun Teck were really bad at it 😦 Also a crazy hard worker who sleeps at 7am to fix bugs.

Yin Yue, FANTASTIC designer, I really really love our app’s UI, I thought it’s one of the better ones in this assigment (personal opinion! Don’t flame me~). She also helped a lot with the report, and pumping team spirit in general. πŸ˜€

All in all, I picked up quite a lot of stuff within the 3 weeks, be it AJAX, more jQuery experiences, and my first PHP project experience. It wasn’t easy but definitely worth it. I especially loved the last 2 hours before submission deadline, where we were furiously fixing bugs at COM1 when others tried out our app and reported bugs. Live technical service! How powerful is that πŸ˜€

Check out our app @

And that’s for CS3216! Read on if you’re interested in my, uh, personal life lol.

Continue reading “CS3216 + Dance Blast”