Author: Kah Hong


Posted on: 29th August 2010

No Comments

Category: School

It’s kind of hard to believe that it’s been more than two years into my tertiary education, and sometimes I feel that I haven’t really learnt much over these last four semesters. It’s like I’ll study really hard for something only to forget it all the moment the holidays come, and this cycle just repeats itself a semester later. I wonder how much of what I learn really stays with me at the end of the day, let alone when I graduate from this institute.

I’m taking twenty-two modular credits worth of modules this term, which is the most I’ve ever taken, and the irony is that it’s also the first time I’ve actually had a three-day school week. It’s probably because I’m only taking one Computing module this time around, and I’ll attribute the reason for this phenomenon to that. The downside to this arrangement is three New Media modules, and while each is arguably less intensive than the average Computing module, having to go through numerous readings each week is only so much fun.

I’ve also signed up for a seven-week iPhone developer course by Garag3 and 2359Media, and three lessons later and I’m already finding it immensely fun. I’ve still yet to familiarise myself with Objective-C, but it hasn’t been too difficult to keep up in class so far. While ungraded, the workload is fairly intensive as the pace of the class has been fast, and I hope it’ll be manageable when school starts picking up.

NOC is just around the corner too, and going overseas for a year somehow doesn’t seem like an easily acceptable reality. I really want to make the best of it, and I’m still worrying about which company I’ll be working for. I can only hope that this one year will be the window of opportunity I’ve been waiting for, although sometimes thinking about it can be stressful. Freshman life was definitely a lot simpler.

Tags: , , , ,

Author: Kah Hong


Posted on: 27th July 2010

No Comments

Category: School

The July 2010 batch bound for the NUS Overseas College programme in Silicon Valley left last Saturday morning, and although I was originally destined to be on that flight, I did not. I made the decision to delay my participation in this programme by a semester a few months back, and I’ve been meaning to jot it down for quite a while, so it might as well be now.

It’s been just under a year since I applied for the programme, and between then and now, none of the perceived benefits that I have of the programme have changed. It’s definitely a valuable opportunity to have, but an important consideration in making this year-long commitment is the price of the opportunity cost. A lot of students have returned from the programme to work on their ideas which turn into startups, but I somehow have the order reversed, putting a little more at stake.

Regardless of whether sgBEAT is a side project or potential startup, it’s easily the thing I’ve poured the most heart into. Not just the emotional investment, but in terms of time and to some extent, financially too. Over the months, as the service grew as did its potential, I decided that July was going to be too soon for me to fly off. Considering that I’m the only co-founder based in Singapore, I’m felt that quite a fair bit of opportunity might have been left behind.

I applied for the deferment earlier this year, and was granted the rollover until January. There are still a number of ideas that I hope to try with sgBEAT, and I’ll have this coming semester to work on some of them. sgBEAT has been a fantastic learning journey for me, and I think the experience I’ve gained will come in useful when I’m working in a Silicon Valley startup.

Tags: , ,

Author: Kah Hong


Posted on: 19th June 2010

No Comments

Category: Work

The Digital Marketplace Forum was held yesterday, and it’s probably the first and only event I’ll be involved in during this internship. The two weeks prior was spent preparing for the event, and for my part I was handling mostly the administrative tasks. It was slightly similar to what I had to do for GIC’s inaugural staff conference two years back, although I probably had a more involved role this time.

I was tasked to design a flyer for the event, and after initial experiments with different ideas I was instructed to follow the corporate guidelines for IDA and the Digital Media & Entertainment department, including the colours and fonts used. This actually made it a lot easier, although perhaps slightly less satisfying to do. The final result can be found here and I think the best word to describe the result would be ‘normal’.

Preparing the information kits for the attendees was taxing to a certain extent, and manually putting together two hundred sets was menial work for more than half a day. The amount of paper that was printed for an event that ultimately had just over a hundred attendees is quite staggering, but thankfully I survived without a single paper cut. Only about three-quarters of these kits were given out though, so the rest had to be taken apart after the event.

I was also in charge of tracking the attendees list and handling the RSVP emails and phone calls, which got a bit hectic closer to the date of the event. I had to cold call quite a number of people too, and what I learnt from this is that I’m not really good at it. Over two hundred people were invited but only half managed to attend, and I must add that I’m quite pleased I didn’t screw up the attendees list in the end.

The day itself went well, with nothing going wrong except a lot of wasted, good food. I was manning the registration desk for almost the entire time and didn’t get to sit-in for any of the speeches nor the breakout sessions, so that was quite unfortunate. In any case, I think the forum was quite a success for the department, and in a larger context it was a step in the right direction for Singapore in her approach towards setting up a hub for digital media here.

The event is easily the highlight of my internship so far, and it’s definitely satisfying to see the hard work pay off. The rest of the internship will probably center around some research I’m doing on digital advertising and 3D TV trends, although I’ll leave that for a later post.

Tags: , ,

Author: Kah Hong


Posted on: 5th June 2010

No Comments

Category: School

So the results were released at the start of the week, and for this semester there wasn’t really any suspense or apprehension preceding it. Having done pretty amazingly for one semester and immediately following up with a flop of results the next, I didn’t know what to expect this time round, although I did have an inkling post-examinations that I wouldn’t be doing too badly.

CS2103 Software Engineering: A+
CS3216 Software Development on Evolving Platforms: B
CS3240 Human-Computer Interaction: B+
MA1101R Linear Algebra: B
NM3215 Advertising Strategies: B+

CAP: 4.03

I think my results for the semester were only average, and in fact I would say I underperformed given that the aim I’ve set for my CAP score is 4.2. A shame is that I’m unable to exercise the S/U option for CS3216 Software Development on Evolving Platforms, because it’s not a core module and it’s pulling my CAP score down. I have two of these options left and only one General Elective module to take, so it seems like one of them will end up being wasted. That said, a positive thing I’ve taken from this semester’s result is that I managed to pass the Mathematics module, and so that’s a psychological victory of sorts. I haven’t looked ahead to what modules I’ll be taking next semester, but I know I’ll have to work harder then.

Tags: , , , , , ,

Author: Kah Hong


Posted on: 23rd May 2010

No Comments

Category: Work

As the three-month sumer break began, I was fortunate enough to be able to secure an internship with the Infocomm Development Authority of Singapore (IDA) under the ELITe programme. This process wasn’t as frantic as a year ago, but it led me to think about my opinion on internships in general.

Granted, my current internship is a requirement for this programme, but I think there’s a lot of benefits that can be derived from this ten-week internship. My department deals with digital media under the Consumer Infocomm division, and it’s insightful to know more about what the government’s plans are regarding the media industry in Singapore. Within this same division is two other equally interesting departments, one that deals with virtual worlds, social media and games, and the other that is involved in developing the startup ecosystem in Singapore.

Exposure aside, I’ve never really done any serious research before, and the job scope of my internship promises that. I don’t really see myself as a research person, hence it’s quite a good opportunity for me to see if I’ll be suitable for such a role. Of course, there’s a limit to how involved an intern will actually be in their projects, so I’m not counting my eggs before they hatch.

One week in, I realised I’d forgotten how corporate lifestyle is like, and indeed it’s a stark contrast from the lack of routine that is academia life. The fixed working hours have quickly taken a toll on me, leaving me with little time on weekday evenings before fatigue sets in. The long periods in the day can be stifling as well, but I think it’s just a matter of taking time to get used to. That said, free time is no longer a commodity, and I’d have to cherish every weeknight and weekend for the subsequent nine weeks of this internship.

There are definitely other things I hope to do in the summer, but the routine of work severely limits the possibilities. I’d never thought I’ll need better time management skills now than during the school semester.

Tags: , ,

Author: Kah Hong


Posted on: 27th April 2010

No Comments

Category: Design, Projects, School, Web

These last few months have been tremendously busy for me, mostly with the workload of school projects and assignments, but it’s been largely enjoyable which is probably why it seems to have passed so quickly. I haven’t neglected writing, although most of my blogging juice has been spent on writing for a blog for one of my modules. This entry comes at a time that is slightly too early for reflections on the semester, but I’ll just like to write about the fair number of web development projects I’ve been involved in since the start of the year, which has made these four months pretty fulfilling.

The first one for the year was the aforementioned blog, and what I tried to do with it was an approach much like that of Dustin Curtis. There were no requirements for the platform or design of the blog, so I took in my own hands to craft out each entry manually, taking the chance to explore different styles of displaying content. Of course, the amount of effort required for each entry would ultimately render this endeavour difficult to sustain as the semester progressed, and the lack of much creativity in the later designs is quite telling of this. Nonetheless, it was fun, although each entry meant that I had to not just write but code as well. I got to learn how to set up an RSS feed and install Disqus for the site, so there was some learning too.

I covered the Facebook and Google Wave projects in the last two posts, but I would like to mention them again due to the significance of these development projects. I learnt a lot of deploying an FBML application within Facebook, and the accompanying Facebook-centric languages and APIs as well. I’m currently working on a Facebook Connect application, and it’s no doubt this interest stemmed from the earlier Facebook assignment. The Google Wave API is something I’m hoping to take another crack at soon, and this new paradigm of real-time applications is too compelling to resist. Why I find these two projects of importance is because these are two more platforms that I’ll now be able to develop for, and not to mention they make good résumé fodder as well.

I’ve built a number of sites for module-related projects as well, and these have given me the opportunity to revisit and improve my current knowledge on HTML, CSS and Javascript. I’m a firm believer of the ‘practice makes perfect’ mantra, and I think the initial mundane steps when building sites from scratch is a necessary routine I’ll have to get used to in order to be iterate sites quicker in future. I’ve been able to play around with more jQuery for these projects, which I still think is an amazing tool, but there are still a lot of possibilities I’ve yet to try. I also learnt to use gothere.sg’s API, which is quite comprehensively documented and is something I’d like to use more in future projects.

The last site I built, which was probably the most trivial and most enjoyable one to do, was a shared gift to one of the most awesome people in the School of Computing, and what I tried to do with this was to mimic a Twistori-like display. More specifically, it got me thinking on what other cool ways could be used to display text data, and a possible implementation of this would be to visualize the updates being sent through sgBEAT. Also, the attempted humour on that site was inspired from Chuck Norris Facts.

The upside to all this is not just experience, but at the end of it I have a bunch of code that could possibly be reused in in subsequent web development endeavours. I’ve also been able to explore new styles in web design, which is also very much a passion of mine. I’ve already taken the next step and am currently working on something which I think is pretty cool, so this upcoming summer break is definitely not going to be a boring one.

Tags: , , , , , , , , , , , ,

Author: Kah Hong


Posted on: 31st March 2010

No Comments

Category: Programming, Projects, School

Having the chance to develop and deploy a Google Wave gadget as part of a school assignment is something I’d never thought I’ll write about. I begun using Wave pretty much since it was available, but not to the extent that my daily workflow was dependent on it. It has been really convenient to discuss and collaborate on ideas within Wave, real-time or not, and somehow the interface seems more appealing to me than using Google Docs.

Regardless, Wave has at best been an easy means to certain ends, but it is probably a lack of maturity and adoption of the platform that has slightly reduced its appeal. It is useful, no doubt, but thinking of particular scenarios where one might use Wave hasn’t been all that simple a task. Brainstorming for an idea to execute upon for the assignment was painful for me, and admittedly I initially didn’t have much interest in what I’ll be able to learn from it. I had been pretty busy with sgBEAT and preparing for the pitching session, and my lack of enthusiasm was probably more apparent than I would have liked.

I was decidedly comfortable with most of the ideas that the rest of the group had come up with – as usual my concern lay more in the challenge of the execution as opposed to the idea-generating process. Nonetheless, I felt that it was a good choice for us to settle on an event organiser, as it was something that I could definitely see myself using in future. Our interface would be a simple grid reflecting the immediate week and a relevant selection of hours, and all the participants of the Wave would have to do would be to select their available timings on the timetable. The grid would reflect the selections accordingly, and the most suitable time slot would be indicated to everyone.

Coding this was not as straightforward as I had hoped, as the HTML could not be static and had to be dynamically generated depending on the current date and time. We assigned each cell the UNIX time it represented as its ID, and I used Javascript to render the layout of the timetable. We then used jQuery to facilitate the dragging nature of selecting the cells, and up to then the easier part of the execution was complete.

The challenging part was having the gadget interact with the Wave state, and the problem was the number of keys we were going to have. Eventually we decided on having one key per selected cell, and through the efforts of one of my group mates, we were able to effectively map each cell to its own key, which we then used to keep count of the number of selections by the participants.

From there, development was much easier, and we simply used CSS styling to indicate the selected cells, with the most popular time slot shown with a different colour. A consideration made was whether we wanted each user to be assigned a colour of his or her own, but the overlapping choices was a problem because the colours would have to merge to form another colour on its own. We thus chose to indicate to the user his or her own selections by marking them with a cross. Other features like adding a title, notes as well as an extra week was included to make the application more robust, and just in time for our submission as well.

It was definitely a challenging development project, and also a pretty good Javascript refresher for me. I got to dabble in HTML, CSS and Javascript this time round, not to mention the relevant Wave APIs, so there was much learning involved as well. Perhaps if there’s time during the holidays I’ll try developing another gadget, but school is pretty much the priority now.

Tags: , , , , ,

Author: Kah Hong


Posted on: 21st March 2010

No Comments

Category: School

[Note: This entry was written for the module, CS3216]

The ad-hoc lecture on ‘Grades, Scholarships and Meritocracy” was an interesting hour of discussion on the Singapore education system as well as the Civil Service. In a certain segment of the presentation, a pyramid concept was described to explain how the meritocratic system of the government is designed in order to funnel the arguably most competent and academically brilliant individuals to the top. A ruthless but nonetheless effective means of trying to hoard the brightest minds within the government sector.

Unfortunately, I think that this funneling concept extends far below the corporate world and into the education system as well. My point here will only be relevant to my experiences, but since the earliest years of our education, we are subjected to a pyramidal ladder of success which we have had to climb. With streaming exercises in the midst of our primary and secondary education, it has only served to collectively group people of relatively similar proficiencies in academia.

The purpose of these exercises make sense on paper, and as a matter of fact in practice it does produce results as well. It allows for the efficient allocation of resources within the education system in terms of managing the curriculum and syllabus to suit the average standard of each particular stream, fueling competition (and perhaps, greater academic drive) while herding the more academically inclined students together at the same time.

The unfortunate consequence of this scheme is a dire one however. Regarding the problem of allocating resources, it is not possible to present everyone in the system equal opportunities, and as a result the more attractive ones, if any at all, are skewed to the students in the better streams. These supposedly smarter students are then able to learn more from these opportunities, improving themselves in a manner that only serves to increase their chances of remaining in this stream, and hence, further opportunities.

The Matthew Effect, as coined by sociologist Robert K. Merton, is described by Malcolm Gladwell in Outliers with reference to Canadian hockey players, and I can’t help but notice the similarities in the manner we identify our academic talent. The students who perform better at an early age are rewarded with increased access to resources and opportunities, while the slow learners are condemned to a fate converse of their more accomplished peers. Although our system has allowed an easy transition process between streams, I feel that there are other less apparent challenges that students have to overcome.

A student who may have been a slow learner would have been streamed into a class with less scholastic potential, and at the risk of generalising or stereotyping, I would say that these students are usually not strong academically or are encumbered with disciplinary problems. The result is that the first student will be subject to the influence of those around him, and this negative peer pressure can definitely be harmful over time. To overcome such an environment and excel would be no trivial feat.

Of course, this reality doesn’t apply to every individual, but based on what I’ve heard, it is certainly an undeniable fact. As students progress up the education ladder, their success and achievements are largely dependent on two things – their individual character and discipline, which is an accountable factor, but more worryingly their environment. The latter is not so easily measured, and unfortunately little can be done to control the external factors.

Could there be a better designed system? I would like to think so, although the current one, however harsh, is arguably effective to quite an extent.

Tags: , , , , ,

Author: Kah Hong


Posted on: 10th March 2010

No Comments

Category: Design, School

[Note: This entry was written for the module, CS3216]

The video conferencing session with Google Wave’s Pamela Fox truly underlined the excitement of taking this module. To have a core member of the Wave team review our applications and personally share with us the new attractive APIs sweetened the deal of being in this awesome class.

It also once again highlighted the sheer proficiency of Professor Ben’s networking skills and web of contacts, and his undeniable ability in outsourcing nearly all his lectures to external, credible professionals. Excessive reverence of this module and the professor aside, I did take away something valuable from this two-hour session, although it wasn’t what I’d initially expected.

The technical bits were fairly interesting, as Pamela described the various capabilities of the new Active Bots API. I think what has always been exciting about Wave is the protocol beneath, in which the real-time transmission and reaction to events would allow for more efficient interactions than the current implementations that use AJAX. The ability to utilise this protocol without being constrained to the Wave interface does bring about more possibilities than before.

What I felt was a greater lesson was the Human-Computer Interaction (HCI) challenges that a real-time interface would have. Pamela reiterated quite a couple of times the importance of guiding the user on how to use the application, and also the significance of showing the user the visibility of his or her current position within the gadget as well as providing visual feedback in response to the user’s action.

While one might regard this as arguably common sense, the implications of real-time interactions on interface design is indeed an interesting and challenging proposition. I think as developers, it is important to always be aware of the constraints of the platform like in terms of size (browser vs. mobile). Now with Wave, interactions not just with the system but other players within the system can be in real-time, and with that its own set of problems and possibilities are presented.

Tags: , , , , , ,

Author: Kah Hong


Posted on: 28th February 2010

No Comments

Category: School

[Note: This entry was written for the module, CS3216]

The title of this entry pretty much sums up the main point illustrated by Chewy Chong in his talk titled ‘You, Others and the Business of People”, which was a really engaging and entertaining session to sit through. What I particularly enjoyed was how the seemingly obvious idea that everyone is unique was comprehensively covered by him in a fashion that provided an interesting perspective on understanding users and customers.

When developing an application, one of the greatest challenges is trying to understand how one’s target users think. A common mistake would be to generalize who the audience is, and from there try to build a product that will seamlessly integrate into their lives. Clearly, making assumptions in this case can be harmful to the way the user experiences the application, as ultimately, this approach is based on one’s gut feeling and not on empirical evidence nor feedback.

So let’s say the developer gets smarter, and removes all previous assumptions. What then? The developer goes out to collect data to support his hypothesis on what the requirements of this product are, but this is not a scalable endeavour in any way. So the developer satisfices, and after interviewing about a hundred potential users or so, comes up with a minimum viable product that suits their needs. The problem that surfaces, then, is that the market is about a thousand times the sample size, and that the amount of data isn’t sufficient to extrapolate to the larger group.

Even if the developer was able to get feedback from more than half the target market, the likely conundrum that will be present is that everyone has different ideas of what the product will be like. The expectations that arise from the users will more often than not be based on their own interpretations of how the application should work and from past experiences with similar products. As a result, not everyone will end up being a satisfied user, with some probably even being dismissive of the execution.

Could the developer have done it any better? Likely not. We know that people are not like us. We avoid making assumptions. We do research, carry out surveys and collect data. Yet, it’s likely that we still do not know exactly what our users want or how they behave. This is just because people aren’t the same as one another, and every individual has a different background with varying past experiences.

Considering cultural and geographic contexts, designing for users becomes a lot more arduous a task. When taking into account the skill curve of our users, the problem then is how we can develop a product that will serve the interests of the respective beginner, intermediate and expert groups at the same time. Attention is usually paid to the former two groups to encourage adoption, and the latter group is normally too marginal that it justifies the sacrifice.

As it turns out, there isn’t a single, right answer to this problem. Based on the premise that people are not like you, an extension of this thought implies that people are not like one another as well, and that it would be improbable if not impossible to design an application or product that caters to the needs or suits the expectations of everyone in the target market. So what’s the best way to deal with this issue?

Well, I’d simply optimise my approach from the results. But that’s just me, of course.

Tags: ,